Einen Linksläufer coden

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Einen Linksläufer coden

    Hi an Alle :)

    Hab mal wieder ein problem bei meinen Boulder Dash. Bin gerade dabei einen Linksläufer zu coden. Leider funktioniert es nicht ganz so wie ich es mir gedacht habe.
    Hier mal den Code wo ich bis jetzt habe.

    GML-Quellcode

    1. ///////////////////////////////////
    2. // Quadrate sind links Läufer //
    3. ///////////////////////////////////
    4. {
    5. if ( !place_snapped(32,32) ) exit;
    6. direction = 180;
    7. speed = max_speed;
    8. if (position_meeting(x-32,y,obj_Rand) || position_meeting(x-32,y,obj_Erde) || position_meeting(x-32,y,obj_Fels) || position_meeting(x-32,y,obj_Diamant)|| position_meeting(x-32,y,obj_Mauer) || position_meeting(x-32,y,obj_Magische_Mauer))
    9. {
    10. direction = 90; // laufe nach oben
    11. }
    12. if (position_meeting(x,y-32,obj_Rand) || position_meeting(x,y-32,obj_Erde) || position_meeting(x,y-32,obj_Fels) || position_meeting(x,y-32,obj_Diamant)|| position_meeting(x,y-32,obj_Mauer) || position_meeting(x,y-32,obj_Magische_Mauer))
    13. {
    14. direction = 0 // laufe nach rechts
    15. }
    16. }
    Alles anzeigen


    So wenn ich diesen Code jetzt teste bleiben die Objekte an einen Ecke hängen. Von meiner Logig aus, sollten sie eigentlich immer weider nach rechts laufen.
    (Ist nur der halbe Code. Da ja die Objekte häge bleiben, habe ich den Rest nicht geschrieben.

    Was in meine Sinne auch falsch wäre. Eigentlich brache ich einen Code der das Objet immer nach links abbiegen lässt.
    So zur Sicherheit hänge ich noch mein Prog mit dran. Damit ihr es besser sehen könnt.
    Und hoffentlich weis einer von euch einen Rat für mich.
    Gruss euer Drachen. :)
    Dateien
    • Boulder.zip

      (45,33 kB, 122 mal heruntergeladen, zuletzt: )
  • Ich hab mal so was ähnliches programmiert (wurde auch prompt als Boulder Dash Klon bezeichnet ;) )
    Hier zum anschauen.
    Da war folgender Code drin (War zu faul, alles abzuschreiben. Hier die Objekt info des Step-Events)
    Spoiler anzeigen

    GML-Quellcode

    1. Step Event:
    2. execute code:
    3. {
    4. //sprite aussuchen
    5. if (msx==16)
    6. {
    7. sprite_index=spr_spider_blue;
    8. }
    9. else if (msx==-16)
    10. {
    11. sprite_index=spr_blue_left;
    12. }
    13. else if (msy==16)
    14. {
    15. sprite_index=spr_blue_down;
    16. }
    17. else if (msy==-16)
    18. {
    19. sprite_index=spr_blue_up;
    20. }
    21. }
    22. if can_move is equal to 1
    23. execute code:
    24. {
    25. ii=instance_position(x+msx,y+msy,obj_hindrance);
    26. if (ii==noone)
    27. meldung=0;
    28. else
    29. meldung=1;
    30. }
    31. if meldung is equal to 0
    32. set variable can_move to 0
    33. execute code:
    34. {
    35. x=x+msx;
    36. y=y+msy;
    37. }
    38. set Alarm 0 to 5
    39. set variable indanger to 0
    40. else
    41. set variable indanger relative to 1
    42. execute code:
    43. {
    44. if (msx==16)
    45. {
    46. if (msy==0)
    47. {
    48. msx=0;
    49. msy=-16;
    50. }
    51. }
    52. else if (msx==0)
    53. {
    54. if (msy==16)
    55. {
    56. msx=16;
    57. msy=0;
    58. }
    59. else if (msy==-16)
    60. {
    61. msx=-16;
    62. msy=0;
    63. }
    64. }
    65. else if (msx==-16)
    66. {
    67. if (msy==0)
    68. {
    69. msx=0;
    70. msy=16;
    71. }
    72. }
    73. }
    74. if indanger is equal to 4
    75. destroy the instance
    76. execute script arcysearch with arguments (0,0,0,0,0)
    Alles anzeigen


    Im Prinzip weis er also über msx und msy wohin er als nächstes läuft, schaut, ob dort ein Hindernis
    ist und ändert dann seine position entsprechend ab.
    Falls du willst, kann ich dir mal ein paar von meinen Gegnern in eine extra gmk stecken und schicken,
    das Projekt hat sich bei mir zur Zeit etwas tot gelaufen...
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • Hi Spellmaker

    Das wäre nett von dir wenn du das machen kannst mit den Gegnern in einer gmk-Datei.
    Jetzt muss ich nur noch mir deien Code anschauen und verstehen lernen.
    Hab vielen Dank dafür.

    Zu Boulder Dash selbst. Ich prog es eigentlich für mich selbst. Hab schon viele Klone gesehen. Aber das Original vom C64´er find ich persönlich immer noch am besten. Deswegen habe ich meine Grafik so dicht wie nur möglich an das orginal angelehnt.

    Gruss Drachen