Animation End frage

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

  • Animation End frage

    Gibt es für Animation End auch einen Code??

    Wie gesagt hab ich über diesen Code im Player OBjekt das schlagen gemacht jedoch gibt es das problem das es dauernd weiter rennt und nicht nach einmaligen durchlaufen der animation aufhört.Und animation end kann ich nicht benutzen da es kein eigenes objekt ist.Gibt es das Animation End auch als Code sodas ich es in diesem Code einfügen kann???

    GML-Quellcode

    1. if keyboard_check(ord("Q"))
    2. {
    3. image_speed=0.3
    4. sprite_index=spr_player_hit1_right
    5. }



    bitte um hilfe.
  • image_number enthält die Anzahl der Images also kannst du einfach das hier benutzen:

    GML-Quellcode

    1. ​if image_index >= image_number
    2. //Animation End


    So leicht ist das manchmal :D
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Wie meinst du das? Da wo das/der/was auch immer Kommentar steht, kannst du dein Code einfügen, der ausgeführt wird, wenn deine Animation zuende ist.
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • also ich meins so:

    im player step event hab ich zb:

    GML-Quellcode

    1. if keyboard_check(blabla)
    2. sprite_index=spr_player_blalbalba
    3. image_speed=0.3;


    das heißt das wenn ich den knopf drücke das sprite ausgeführt wird.jedoch wird es andauernd ausgeführt.
    und da kann ich ja nicht einfach animation end hinschreiben ,und wenn ich ausserhalb des player step event ein animation end mache wirkt es ja nicht.
    da es ja kein eigenes objekt ist.
  • Hmm, ich hoffe das ich das richtig verstanden habe.
    Die Animation soll starten und beim letzten Bild stehen bleiben?

    Hier mal mein versuch dazu: deuteriumoxid.com/gamemaker/Animation.gmz

    Linke Pfeiltaste = Die Anmation startet und fängt immer wieder von vorne an sollange die Tastet gedrückt wird.
    Rechte Pfeiltaste = Die Animation läuft bis zum letzten Animationsbild und bleib dann dort stehen.

    Wird keine Taste gedrückt, springt das Bild wieder zurück auf den Startindex.
  • hier mal ein Auszug aus der dem deutschen Handbuch für GM :thumbsup:



    image_number*
    Bildnummer eines Bildes einer Bildfolge der Instanz (unveränderbar).

    image_index
    Wenn ein sprite aus einer Bildfolge besteht, wird diese zyklisch wiederholt. Diese Variable zeigt das momentan dargestellte Bild der Bildfolge an (Nummerierung beginnt bei 0). Du kannst das momentan angezeigte Bild ändern, indem du den Wert dieser Variablen änderst. Das Programm setzt, beginnend mit dem angegebenem Bild, die zyklische Wiederholung fort.

    image_speed
    Die Zyklusgeschwindigkeit. Ein Wert von 1 bedeutet pro "step" ein Bild weiter. Kleinere Werte bedeuten eine langsamere Zyklusgeschwindigkeit, wobei jedes Bild der Bildfolge mehrfach gezeichnet wird. Grössere Werte bedeuten, dass einzelne Bilder der Bildfolge übersprungen werden, um die Bewegung schneller zu gestalten. Manchmal willst du nur ein spezielles Bild einer Bildfolge darstellen und nicht immer den ganzen Zyklus. Das kannst du erreichen, indem du diese Variable auf 0 und die Variable image_index auf den Index des Bildes setzt, welches dargestellt werden soll (Das erste Bild der Bildfolge hat den Index 0). Dies ist nützlich, wenn ein Objekt unterschiedliche Erscheinungsbilder hat. Angenommen du hast ein Objekt, welches sich drehen kann und du hast eine Bildfolge worin alle Bilder, je nach Ausrichtung, enthalten sind (entgegen dem Uhrzeigersinn).

    ein beispiel aus dem Handbuch
    "step event" des Objekts:

    {
    image_index = direction * image_number/360;
    image_speed = 0;
    }


    ich hoffe das kann dir helfen, auch wenn das beispiel auf eine Rotation ausgelegt ist sollte es dir
    das ganze verständlich machen.

    übrigens!
    das "Handbuch" (D) findest du hier
    gamemaker.info/de/manual :thumbsup:


  • Meiner Meinung lässt sich das ganze so am einfachsten lösen

    GML-Quellcode

    1. if keyboard_check_pressed(ord("Q") or hit == true)
    2. {
    3. hit= true; //Eine hilfsvariable die die animation am laufen hält, auch beim loslassen der aktionstaste
    4. image_index+=0.25 // 0.25 is en besserer Wert da er glatt durch 1 geht,... dadurch wird wirklich jedes Bild abgespielt
    5. sprite_index=spr_player_hit1_right
    6. //Solange die Animation noch nicht beim letzten Bild angekommen ist, läuft diese weiter
    7. if (image_index >= image_number-1 )
    8. {
    9. image_index = 0; //Erstes Bild
    10. hit = false; //Hilfsvariable zurücksetzten damit die Animation beendet wird
    11. }
    12. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von Blayde ()