Comment gérer correctement la partie d'atterrissage dans une animation de saut

16

Regardez cette feuille de sprite.

Megaman

Il est clair que les images 1 à 3 sont les images "sautées", après quoi la dernière image sera fixée jusqu'au "pic" du saut (lorsque la gravité commence à reculer). Lorsque vous reculez, les cadres 4-7 sont utilisés et tout se termine par un cadre "inactif" (qui n'est pas montré ici dans ce sprite de saut).

Ma question concerne les images 6 et 7 de ce sprite. Lorsque l'entité "atterrit" après un saut, il est supposé exécuter l'animation 6-7 comme animation "d'atterrissage". Lorsque vous vous déplacez vers le bas dans un cadre de saut 4-5 sont faciles car ils sont le "début" de l'animation. L'image 5 peut être conservée aussi longtemps que vous tombez ... mais quelle est la bonne façon de passer de l'image 5 à 6-7-x? Vérifiez-vous si le cadre après la prochaine est une chute puis "déclenchez" l'atterrissage ou faites-vous cela lorsque vous avez réellement touché le sol?

Il ne peut pas être chronométré en raison de divers scénarios tels que sauter d'une falaise ou sauter sous un toit bas en vous frappant la tête et en vous faisant rebondir.

Des idées?

sPirc
la source

Réponses:

17

Je suppose que l'approche habituelle est d'avoir trois états liés au saut : le saut (un héros monte au point de saut le plus élevé), Chute (du point de saut le plus haut au sol), Atterrissage (le saut se termine avec le héros debout sur le sol) ).

Il existe plusieurs façons de détecter ces états, généralement il s'agit de plusieurs contrôles de collision définissant des drapeaux d'état. Par exemple, dans l'étape de physique d'un personnage, nous pouvons vérifier les collisions ci-dessous, et s'il n'y en a pas, alors le personnage est dans l'air. Maintenant, si un personnage a une vitesse verticale positive, c'est un état de saut , sinon c'est un état de chute . Si c'est un état Falling , et nous avons détecté une collision ci-dessous, alors c'est un état Landing , alors passons à l'animation Landing.

Cette animation se joue généralement lorsque le héros a réellement touché le sol. La séquence d'animation est courte, donc l'atterrissage aura l'air à grande vitesse, cela crée également une sensation de contrôles nets et précis. Parfois, le personnage peut effectuer une longue séquence d'atterrissage, mais il est alors possible qu'un personnage annule l'animation d'atterrissage et commence à courir, par exemple Castlevania: SotN.

EnoughTea
la source
+1. Bon point sur les états. À partir des états, vous pouvez découvrir d'autres détails / modes.
Kromster dit soutenir Monica
5

J'ai vu cela se faire de deux manières:

  1. Lorsque la boîte englobante entre en collision pour la première fois avec le sol, effectuez une transition rapide 5-> 6-> 7.
  2. Avoir une deuxième boîte englobante `` fantôme '', qui s'étend une petite partie en dessous de la boîte englobante réelle pour initier le 5-> 6, puis sur la boîte englobante réelle entrant en collision, faites 6-> 7.
Adrian Seeley
la source
J'ai bien aimé le 2ème cas. Semble très flexible car la boîte englobante fantôme peut être réglée très loin en fonction de la vitesse du personnage!
pek
Approche intéressante N ° 2. Je n'ai jamais fini par l'essayer mais je m'en souviendrai merci.
sPirc