Mehrere Animation pro Sprite, wie elegant steuern?

  • GM 8

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

  • Mehrere Animation pro Sprite, wie elegant steuern?

    Servus,

    mal wieder eine Frage.

    Ich habe für mein Objekt derzeit 3 Sprites.
    1 Sprite für Stillstand,
    1 Sprite für horizontale Animation (10er strip)
    1 Sprite für vertikale Animation (10er strip)

    Am liebsten wäre es mir, ich könnte die alle in einen Sprite packen, allerdings gehen mir dann die einfachen Möglichkeiten die Animationen abzuspielen verloren und ich schätze ich müsste mich um alles selbst kümmern.
    Oder gibt es einen eleganten Weg das zu lösen ohne alles selbst programmieren zu müssen?

    Im Moment gebe ich der Instanz beim Erzeugen den jeweiligen Sprite mit, und dann wird da die Animation (nur einmal) abgespielt.
    Stattdessen würde ich sprite_subindex start und stop mitgeben wollen, oder so ähnlich.
  • Hi, ist zwar schon ne Weile her wo sowas gemacht habe, aber es lässt sich mit image_index lösen.

    Da image_index durchzählbar ist, kannst du image_index setzen und dann +1 erhöhen wärend eine beliebe taste gedrückt wird und am letzten Image des Abschnittes wieder auf den Anfangs Animation image_index setzen.
    Das machst du dann für alle Animationsabläufe innerhalb deines Sprites und schon ists "kompakt".

    Greetz BM
    Es gibt viel zu tun, packen wir´s an !!!
    Für Rechtschreibfehler sind die verantwortlich, die sie entdecken :P.
  • Hi

    Schau dir mal das hier an:
    GML - Die Einsteigerreferenz

    Im Kapitel 8 (Spielprogrammierung) hat Windappel eine sehr schön Lösung für sowas geschrieben. Ich benutze sie sehr oft, eigentlich immer.

    Auszug aus GML-Die-Einsteigerreferenz - Spielprogrammierung

    GML-Quellcode

    1. //Skript subimage_cycle
    2. //Das Sprite der aktuellen Instanz "pendelt" zwischen zwei Grenzen hin und her
    3. if (image_index < argument0 || image_index > argument1)
    4. {
    5. image_index = argument0;
    6. }


    Würde eine Instanz das vorherige Beispiel als Sprite haben und wir würden im End Step-Event schreiben

    GML-Quellcode

    1. subimage_cycle(6,11);


    Hoffe das es dir hilft

    Gruss Drachen :)