Richtungsfrage

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

  • Richtungsfrage

    Hallo, Ack und ich arbeiten seit kurzer Zeit an einem Zombigame. Jetzt stehen wir vor folgendem Problem:

    Man kann sich im Level bewegen, und die zombies verfolgen einen auch, mit der Funktion "Step towards Point (Player.x, Player.y)". Jetzt haben wir haben für jede richtung in die der zombi läuft nur ein sprite, wie kann man die laufrichtung herausfinden um sie dann dem richtungssprite anzupassen??

    8)
    Game Maker - Recomer
  • RE: Richtungsfrage

    Nehmt einfach anstelle von "step towards a point" "move in the direction of a point" her. Dann könnt ihr die Variablen hspeed und vspeed abfragen und eure Sprites daran anpassen. Wenn ihr , aus welchen Gründen auch immer, mit "step towards a point" arbeiten wollt, dann müsst ihr halt jeden Step die x und y Werte in extra Variablen ablegen bevor ihr den step macht und danach mit den neuen x und y Werten vergleichen.
    Einige meiner Spiele:
  • Am praktischten ist es übrigens alle Richtungen gegen den Uhrzeigersinn in ein Sprite zu packen und diesen Code ins Step-Event zu schreiben:

    Quellcode

    1. {
    2. image_index = direction * image_number/360;
    3. image_speed = 0;
    4. }


    Wenn ihr für jede Richtung ein extra Sprite hernehmen wollt könnt ihr auch das schreiben:

    Quellcode

    1. if (hspeed<0 && abs(hspeed) > abs(vspeed))
    2. {sprite_index=zombie_links;}
    3. if (hspeed>0 && abs(hspeed) > abs(vspeed))
    4. {sprite_index=zombie_rechts;}
    5. if (vspeed<0 && abs(vspeed) > abs(hspeed))
    6. {sprite_index=zombie_oben;}
    7. if (vspeed>0 && abs(vspeed) > abs(hspeed))
    8. {sprite_index=zombie_unten;}



    Move in the direction of a point findet man rechts oben unter "move"
    Einige meiner Spiele:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von interceptor ()

  • Du musst schon dazusagen, dass du die Funktion "step towards a point avoiding objects" hernimmst. Dann fällt das alles natürlich flach, was ich vorher geschrieben habe. Mach statt dessen folgendes im step-Event:
    Als erstes fügst du diesen Code ein:

    Quellcode

    1. zuvor_x=x;
    2. zuvor_y=y;

    Danach kommt deine Aktion "perform a step towards position (Player.x,Player.y) with speed 5 avoiding solid only"
    und schließlich ein weiterer Schnipsel Code:

    Quellcode

    1. x_change = x-zuvor_x;
    2. y_change = y-zuvor_y;
    3. if (x_change<0 && abs(x_change) > abs(y_change))
    4. {sprite_index=zombie_links;}
    5. if (x_change>0 && abs(x_change) > abs(y_change))
    6. {sprite_index=zombie_rechts;}
    7. if (y_change<0 && abs(y_change) > abs(x_change))
    8. {sprite_index=zombie_oben;}
    9. if (y_change>0 && abs(y_change) > abs(x_change))
    10. {sprite_index=zombie_unten;}
    Alles anzeigen
    Einige meiner Spiele:
  • Nö du übersiehst nichts Mewx, aber ich...AAARGHHH!!!!!
    Hab ich tatsächlich bis jetzt immer übersehen. Mir passiert das öfter, dass ich ewig Code schreibe nur um festzustellen, dass der ZWeck des Codes schon von EINEM einfachen gamemakereigenen Befehl ausgeführt wird...
    Einige meiner Spiele:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von interceptor ()

  • Original von interceptor
    Nö du übersiehst nichts Mewx, aber ich...AAARGHHH!!!!!
    Hab ich tatsächlich bis jetzt immer übersehen. Mir passiert das öfter, dass ich ewig Code schreibe nur um festzustellen, dass der ZWeck des Codes schon von EINEM einfachen gamemakereigenen Befehl ausgeführt wird...


    hihihi musste ich auch feststellen, nach genauerem hinsehen, als es die Zeit erlaubte :)
    hetotecs Winter-Homepage - klick hier:hetotec.de


    Hier auf landet ihr auf meiner Spiele-Vorstellungs-Seite ^^
    Noch keinen Stern geschenkt bekommen? Hol dir deinen eigenen Stern
    hier yoyogames.com/games/show/30678
    Am Weihnachtsbaum Lichter anzünden? Mit 9 Musik-Titeln zur Auswahl oder eigene Musik laden
    hier yoyogames.com/games/show/20074
  • Hab grad nochmal in der Hilfe nachgeschlagen: xprevious und yprevious sind genau die Variablen die gebraucht werden (nebenbei hab ich auch noch die Variablen xstart und ystart das erste mal gesehen, die hab ich mir früher immer selber erstellt...wie gesagt man lernt nie aus....) Allerdings ersetzt xprevious natürlich nicht meine Variable x_change sondern die Variable zuvor_x. Na gut, man könnte x_change überall durch x-xprevious ersetzen aber ich mags lieber mit kürzeren Zeilen und dafür mehr Variablen...Hier mal, wie ich das einbauen würde:
    1. "step towards a point avoiding objects" per Drag and Drop
    2.Folgender Code:

    Quellcode

    1. x_change = x-xprevious;
    2. y_change = y-yprevious;
    3. if (x_change<0 && abs(x_change) > abs(y_change))
    4. {sprite_index=zombie_links;}
    5. if (x_change>0 && abs(x_change) > abs(y_change))
    6. {sprite_index=zombie_rechts;}
    7. if (y_change<0 && abs(y_change) > abs(x_change))
    8. {sprite_index=zombie_oben;}
    9. if (y_change>0 && abs(y_change) > abs(x_change))
    10. {sprite_index=zombie_unten;}
    Alles anzeigen
    Einige meiner Spiele:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von interceptor ()