Cómo manejar correctamente la parte de aterrizaje en una animación de salto

16

Mira esta hoja de sprites.

Megaman

Está claro que los cuadros 1-3 son los cuadros de "salto hacia arriba", después de lo cual el último cuadro se fijará hasta el "pico" del salto (cuando la gravedad comienza a retroceder). Al retroceder, se usan los cuadros 4-7 y todo termina con un cuadro "inactivo" (que no se muestra aquí en este sprite de salto).

Mi pregunta es sobre los cuadros 6 y 7 en este sprite. Cuando la entidad "aterriza" después de un salto, se supone que debe ejecutar la animación 6-7 como animación de "aterrizaje". Cuando se mueve hacia abajo en un cuadro de salto, 4-5 son fáciles porque son el "comienzo" de la animación. El cuadro 5 se puede mantener mientras caiga ... pero, ¿cuál es la forma adecuada de pasar del cuadro 5 a 6-7-x? ¿Comprueba si el cuadro después de la siguiente es una caída y luego "inicia" el aterrizaje o lo hace cuando realmente ha tocado el suelo?

No se puede cronometrar debido a varios escenarios, como saltar desde un acantilado o saltar bajo un techo bajo golpeando tu cabeza y rebotando hacia abajo.

¿Algunas ideas?

sPirc
fuente

Respuestas:

17

Supongo que el enfoque habitual es tener tres estados relacionados con el salto : Saltar (un héroe sube al punto más alto del salto), Caer (desde el punto más alto del salto al suelo), Aterrizar (el salto termina con el héroe parado en el suelo )

Hay varias formas de detectar estos estados, por lo general, se trata de varias comprobaciones de colisión que establecen indicadores de estado. Por ejemplo, en el paso de física de un personaje, podemos verificar las colisiones a continuación, y si no hay ninguna, entonces el personaje está en el aire. Ahora, si un personaje tiene una velocidad vertical positiva, es un estado de Salto , de lo contrario es un estado de Caída . Si es un estado de caída , y detectamos una colisión a continuación, entonces es un estado de aterrizaje , así que pasemos a la animación de aterrizaje.

Esta animación generalmente se reproduce cuando el héroe realmente ha tocado el suelo. La secuencia de animación es corta, por lo que el aterrizaje se verá a alta velocidad, también crea una sensación de controles nítidos y precisos. A veces, el personaje puede hacer una secuencia de aterrizaje larga, pero luego es posible que un personaje cancele la animación de aterrizaje y comience a correr, por ejemplo, Castlevania: SotN.

EnoughTea
fuente
+1. Buen punto sobre los estados. Desde los estados puede descubrir otros detalles / modos.
Kromster dice que apoya a Mónica el
5

He visto esto hecho de dos maneras:

  1. Cuando el cuadro delimitador colisiona por primera vez con el suelo, haga una transición rápida 5-> 6-> 7.
  2. Tenga un segundo cuadro delimitador 'fantasma', que se extienda una pequeña porción debajo del cuadro delimitador real para iniciar el 5-> 6, luego, cuando el cuadro delimitador real colisione, haga 6-> 7.
Adrian Seeley
fuente
Me gustó el segundo caso. ¡Parece muy flexible porque el cuadro delimitador de fantasmas se puede establecer muy lejos dependiendo de la velocidad del personaje!
Pek
Enfoque interesante Nbr 2. Nunca terminé probándolo, pero lo tendré en cuenta gracias.
sPirc