Laufen - Animation - Zwei Tasten gleichzeitig ?!??

  • GM 8
  • Laufen - Animation - Zwei Tasten gleichzeitig ?!??

    Hey Leute, hab hier eine echt harte Nuss.

    Wenn mein Männchen nach rechts läuft, soll es sich auch mit seiner Laufanimation nach rechts bewegen. OK - Geht.
    Wenn mein Männchen nach links läuft, soll es sich auch mit seiner Laufanimation nach links bewegen. OK - Geht.

    Problem:
    Wenn ich nun rechts drücke, und das Männchen nach rechts läuft, und währenddessen links gedrückt halte, läuft er plötzlich rückwärts nach links.
    Das heißt er läuft mit der Animation, mit der er eigentlich nach rechts läuft, nach links.

    Also, sobald beide Tasten gleichzeitig gedrückt sind, läuft er rückwärts, und das will ich so nicht.

    Am Besten wäre es so, dass wenn beide Tasten gleichzeitig gedrückt sind, er sich einfach nach vorne stellt und sich gar nicht mehr bewegt.
    So etwas hatte ich sogar schon hinbekommen, allerdings, sobald ich dann wiederum eine Taste losgelassen habe, ist er im Stehen gelaufen.


    Wichtig:
    Laufanimationen des Männchens:

    Links laufen, Füße nach links.
    Rechts laufen, Füße nach rechts.
    Nichts drücken, Männchen steht und guckt nach vorne.


    Hoffe ihr könnt mir irgendwie helfen.

    Am Besten wäre vielleicht sogar ein Beispiel!!! Vielen Dank!!!

    Brauche unbedingt Hilfe!!! Als Belohnung gibts dann auch das Spiel (Was aber wahrscheinlich noch eine halbe Ewigkeit dauernd wird)

    Vielen vielen Dank!!!! ;(
  • Hmmm.... das Problem kenn ich :headtouch:
    Mach es am besten so (Step Event):

    GML-Quellcode

    1. if(keyboard_check(vk_right) && !keyboard_check(vk_left)){
    2. sprite_index = spr_rechts;
    3. }
    4. if(!keyboard_check(vk_right) && keyboard_check(vk_left)){
    5. sprite_index = spr_links;
    6. }
    7. if((!keyboard_check(vk_right) && !keyboard_check(vk_left)) ||
    8. (keyboard_check(vk_right) && keyboard_check(vk_left)))
    9. sprite_index = spr_stehen;

    Ach ja und noch was: Wenn du anstatt zwei Sprites zu nutzen, einfach den image_xscale auf 1 setzt wenn er nach rechts läuft und auf -1 setzt wenn er nach links läuft, dann kannst du nur einen Sprite nutzen (sparrt Speicher)
    Edit: Hier ein Example

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.

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