Ayuda Con Animacion Sprite

Hola mirar estoy haciendo otro juego y como siempre tengo problemas con los graficos putos graficos estoy haciendo una animacion de 4 frames osea dibujos y le he dicho que haga un solo ciclo el problema es que cuando termina se queda como al principio osea en el primer dibujo de la animacion y lo que quiero es que se quede en el ultimo o en otro a mi eleccion y me gustaria saber si hay forma de hacer lo o de saber lo que va atardar en terminar la animacion para hacer en cambio en ese momento o algo parecido
GRacias
Un saludo
Kaltorak.
Hazte una clase propia en el que controles la velocidad de los frames y el numero de frames. Yo lo que hago es tener el frame actual, frame siguiente, frames totales y velocidad animacion asi principalmente. Luego podrias completarlo con alguna que necesites según el estado. Te creas un fichero con esa información, lo cargas y listo.
Si usas PAlib es bastante fácil de definir. Hay una función que te permite indicar en un parametro donde quieres que se quede la animación cuando acabe. Tres ejemplos de la función:

PA_StartSpriteAnimEx(0, 1, 0, 6, 5, ANIM_ONESHOT); // just play it once...
PA_StartSpriteAnimEx(0, 2, 0, 6, 5, ANIM_UPDOWN, -1); // back and forth, infinite number of times
PA_StartSpriteAnimEx(0, 3, 0, 6, 5, ANIM_LOOP, 5); // Play it 5 times


La función en cuestión es esta:

PA_SetSpriteAnimEx (bool screen, u8 sprite, u8 lx, u8 ly, u8 ncolors, s16 animframe)


Para que se quede en el último frame en vez de volver al primero, debes poner el ANIM_UPDOWN y luego un número de veces que quieres que se repita (-1 es infinito, que es lo que pone en el ejemplo).

Saludos
2 respuestas