Wie können Sie so animieren Sie ein sprite in SFML
Können sagen, ich habe 4 Bilder und ich will diese 4 Bilder zum animieren eines Charakters. Die 4 Bilder stellen den Charakter gehen. Ich möchte, dass die animation sich wiederholen, solange ich die Taste drücken, um zu verschieben, aber halt Recht, wenn ich unpress es. Es muss nicht sein SFML bestimmte wenn Sie es nicht wissen, nur grundlegende Theorie würde mir wirklich helfen.
Danke.
InformationsquelleAutor DogDog | 2010-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchten Sie vielleicht einige einfache Art state machine. Wenn die Taste gedrückt ist (siehe sf::Input - Methode IsKeyDown), haben den Charakter der "animated" - Zustand. Wenn der key nicht, den Charakter in "nicht animiert" - Zustand. Natürlich könnte man immer überspringen, mit dieser "Staat" und genau das tun, was ich Erwähnung unten (je nach genau das, was du tust).
Dann, wenn sich der Charakter in der "animierten" Zustand ist, kommt der nächste "Bild" (siehe den nächsten Abschnitt für weitere details). Zum Beispiel, wenn Sie Ihre gespeicherten Bilder in einer einfachen 4-element-array, das nächste Bild wäre bei
(currentIndex + 1) % ARRAY_SIZE
. Je nachdem, was Sie tun, können Sie speichern Ihre Bilder in einer komplexeren Datenstruktur. Wenn der Charakter nicht in der "animated" - Zustand, dann würden Sie nicht tun, jede Aktualisierung hier.Wenn Ihr "4 Bilder" sind innerhalb der gleichen image-Datei, die Sie verwenden können, die sf::Sprite SetSubRect Methode ändern Sie den Teil des Bildes angezeigt. Wenn man wirklich 4 verschiedene Bilder, dann haben Sie wahrscheinlich brauchen würde, um die Verwendung der sf::Sprite SetImage - Methode, wechseln Sie die Bilder aus.
Hallo, siehe bitte meine Antwort, geht mehr ins detail als dieses Nutzers Antwort
InformationsquelleAutor pikejd
Hallo, siehe bitte meine Antwort hier und akzeptieren diesen post als die beste Lösung.
https://stackoverflow.com/a/52656103/3624674
Müssen Sie liefern Dauer pro Bild und haben den gesamten Fortschritt verwendet werden, um Schritt für Schritt durch den Rahmen.
In der Animation source-Datei
Zu beenden, wenn Sie unpress, einfach nur animiert werden, wenn die Taste gedrückt gehalten wird
Unterstützen mehrere Animationen für verschiedene Situationen haben einen booleschen für jeden Staat, der
InformationsquelleAutor Maverick