Wie man den Landeteil in einer Sprunganimation richtig handhabt

16

Schauen Sie sich dieses Sprite-Blatt an.

Megaman

Es ist klar, dass Frame 1-3 die "Jump Up" -Frames sind, nach denen der letzte Frame bis zum "Peak" des Jumps fixiert wird (wenn die Schwerkraft nachlässt). Beim Zurückfahren werden Frame 4-7 verwendet und es endet alles mit einem "Leerlauf" -Frame (was hier in diesem Jump-Sprite nicht gezeigt wird).

Meine Frage betrifft die Bilder 6 und 7 in diesem Sprite. Wenn die Entität nach einem Sprung "landet", wird angenommen, dass Animation 6-7 als "Landing" -Animation ausgeführt wird. Beim Abwärtsbewegen in einem Sprungrahmen sind 4-5 einfach, da sie der "Start" der Animation sind. Frame 5 kann so lange aufbewahrt werden, wie Sie fallen ... aber wie kann man von Frame 5 zu Frame 6-7-x wechseln? Prüfen Sie, ob es sich bei dem Rahmen nach dem nächsten Sturz um einen Sturz handelt, und "leiten" Sie dann die Landung ein, oder tun Sie dies, wenn Sie tatsächlich den Boden berührt haben?

Es kann nicht wegen verschiedener Szenarien wie Springen von einer Klippe oder Springen unter einem niedrigen Dach, das deinen Kopf trifft und dich zurückprallt, zeitlich festgelegt werden.

Irgendwelche Ideen?

sPirc
quelle

Antworten:

17

Ich denke, der übliche Ansatz besteht darin, drei Sprungzustände zu haben: Springen (ein Held steigt zum höchsten Punkt des Sprunges), Fallen (vom höchsten Punkt des Sprunges zum Boden), Landen (der Sprung endet , wenn der Held auf dem Boden steht ).

Es gibt verschiedene Möglichkeiten, diese Zustände zu erkennen. In der Regel werden bei mehreren Kollisionsprüfungen Statusflags gesetzt. Zum Beispiel können wir im Physik-Schritt eines Charakters unten nach Kollisionen suchen, und wenn keine vorhanden sind, ist der Charakter in der Luft. Wenn ein Charakter eine positive vertikale Geschwindigkeit hat, ist dies ein Sprungstatus , andernfalls ein Fallstatus . Wenn es ein ist Falle Zustand, und wir festgestellt , eine Kollision unter, als es eine ist Landing Zustand, so läßt Schalter auf die Landung Animation.

Diese Animation wird normalerweise abgespielt, wenn der Held tatsächlich auf dem Boden liegt. Die Animationssequenz ist kurz, so dass die Landung mit hoher Geschwindigkeit abläuft und ein Gefühl von klarer und präziser Steuerung erzeugt. Manchmal kann ein Charakter eine lange Landesequenz ausführen, aber dann kann ein Charakter die Landeanimation abbrechen und mit dem Laufen beginnen, z. B. Castlevania: SotN.

Genug Tee
quelle
+1. Guter Punkt über Staaten. Aus Zuständen können Sie andere Details / Modi herausfinden.
Kromster sagt Unterstützung Monica
5

Ich habe dies auf zwei Arten gesehen:

  1. Wenn der Begrenzungsrahmen zum ersten Mal mit dem Boden kollidiert, machen Sie einen schnellen Übergang 5-> 6-> 7.
  2. Lassen Sie einen zweiten "Geister" -Begrenzungsrahmen, der sich einen kleinen Teil unterhalb des eigentlichen Begrenzungsrahmens erstreckt, um 5-> 6 auszulösen. Führen Sie dann beim eigentlichen Kollidieren des Begrenzungsrahmens 6-> 7 aus.
Adrian Seeley
quelle
Mochte den 2. Fall. Scheint sehr flexibel zu sein, da die Ghost Bounding Box abhängig von der Geschwindigkeit des Charakters weit entfernt eingestellt werden kann!
pek
Interessanter Ansatz Nr. 2. Ich habe es nie ausprobiert, aber ich werde es mir merken, danke.
sPirc