Charakter "Untätig-Animation"

  • GM 8

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

  • Charakter "Untätig-Animation"

    Mir bereitet gerade folgendes Kopfzerbrechen, die Lösung ist vermutlich mal wieder so einfach das ich sie nicht finde darum brauche ich etwas Hilfe. Ich bin gerade dabei mit einem Jump n Run herum zu experimentieren, der Charakter kann laufen und so weit funktioniert das auch recht gut, ich komme gut voran. Nun möchte ich das er wenn man eine bestimmte Zeit mit ihm stehen bleibt und nichts macht er in eine Art Wartestellung verfällt, das Sprite also geändert wird.

    Ich hatte zuerst bei "Release Left" und "Release Right" je einen "Set Alarm" drin, das hatte auch geklapt, nur läuft der Alarm weiter man kann ihn wohl nicht stoppen und so kommt es manchmal vor das das Sprite auch geändert wird, wenn der Charakter eigentlich in eine andere Richtung schaut, das ist unschön.

    Nun hatte ich nur einen Alarm verwendet und Variabelen gesetzt bei "Release Left" und "Release Right" diese sollten bei "Alarm 0" unter den Events abgefragt werden, doch dann kommt manches mal die Fehlermeldung "Unknown variable". Ignoriere ich diese Meldung, dann funktioniert das aber witzigerweise genau so wie ich das möchte, doch irgendwo scheint ein Denkfehler zu sein.

    Was ich bräuchte wäre ein Timer den ich in die Action Leiste setzen und abfragen kann, dann könnte ich ihn direkt unter "Release Right" reinsetzen und den Befehl "Chance Sprite" drunter, doch der Befehl "Sleep" oder "Set Time Line" erscheint mir etwas anderes sein. Die Welt würde nun auch weiter drehen wenn ich diese Animation nicht drin hätte und mir fallen noch genug andere "Baustellen" ein wo man sich erst mal drum kümern könnte, doch die Sache wurmt mich vor allem weil ich glaube das die Lösung so schwer nicht sein kann und da muss ich doch gerade mal nachfragen, die Datei hänge ich mal dran.
    Dateien
    • riaversion2.zip

      (64,2 kB, 121 mal heruntergeladen, zuletzt: )
  • Ohne deinen Code angesehen zu haben, behaupte ich mal, dass es um Einiges einfacher wäre, das nicht mit den Events "Release Right" bzw. "Left" zu lösen. Für schlauer halte ich es, im Step-Event einen Code reinzuschreiben, der in etwa so aussehen könnte:

    GML-Quellcode

    1. if (!keyboard_check(vk_left)&&!keyboard_check(vk_right&&alarm[0]<0) {
    2. alarm[0]=10*room_speed;
    3. }
    4. if keyboard_check(vk_left)||keyboard_check(vk_right) {
    5. alarm[0]=-1; //Da der Alarm-Event nur dann ausgelöst wird, wenn der entsprechende Alarm 0 beträgt, wird das umgangen, indem man den Alarm auf -1 setzt.
    6. }


  • Hallo,
    du musst die Variablen riastandleft und riastandright zuerst im create-event definieren.
    Also im create-Event:

    GML-Quellcode

    1. riastandleft = 0
    2. riastandright = 0

    Du kannst das auch mit der Aktion "set the variable to" machen.

    Und in den Keyboard-Events solltest du die Variablen auch auf 0 setzen.

    mfg Alron
  • Ah danke, das mit den Variabelen klappt nun wunderbar, das mit den definieren ist mir wohl entfallen es ergibt aber nun einen tieferen Sinn das die Variabelen erst einmal dort sein müssen. Es gibt ja immer unterschiedliche Lösungen und das mit dem Code hätte bestimmt auch irgendwie funktioniert, vielen herzlichen Dank.

    Nun muss ich ich an die Schlag-Animation machen, da tauchen bestimmt dann neue Probleme auf :whistling: