Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Xizotono en Diciembre 19, 2014, 11:08:01 PM

Título: Sprite comienza donde le da la gana
Publicado por: Xizotono en Diciembre 19, 2014, 11:08:01 PM
Hola buenas. Tengo un objeto que marca su accion mediante la variable estado (quieto,andando,etc). En el step tengo un switch que indica el sprite_index y direccion correspondiente a cada estado. Ahora bien, tengo un sprite de ataque (crucial que empieze de cero) que empieza pues cuando quiere.

Dicho sprite se define con la variable estado y mientras este este en funcionamiento no se puede cambiar el estado. El sprite termina con un alarm (para que termine en el momento).

PD: Lei por ahi sobre ANIMATION END. ¿Ezo que ez? xd
Título: Re:Sprite comienza donde le da la gana
Publicado por: penumbra en Diciembre 20, 2014, 12:34:58 AM
Lo que sucede es que GM no actualiza el índice de imagen al cambiar de sprite, si estabas corriendo y se reproducía la subimagen 5 de ese sprite, y cambias al sprite de ataque, el sprite de ataque comienza en la subimagen 5. Suponiendo que el ataque sea haga con la tecla A. En el evento KEYPRESS de esa tecla, pones

[gml]
if (image_index >0 ) and (sprite_index != spr_ataque)
     image_index = 0
[/gml]
Esto haría que siempre comienze por el primer frame de la animación. Si sólo pones image_index = 0 sin la condición, siempre que se presione A volvería a reproducirse desde la subimagen 0, y si ya se estaba atacando, se vería mal.

El evento ANIMATION END es mejor alternativa que usar la alarma para terminar la animación. Suponiendo que quieres que después de atacar, el personaje cambie nuevamente al estado quieto

ANIMATION END
[gml]
if (sprite_index == spr_ataque)
{
     quieto = 1
     ataque = 0
}
[/gml]
Si tienes bien implementados los estados, eso haría que cambie el sprite automáticamente después de atacar. En el IF también se puede agregar una condición para que detecte si se presionan teclas de movimiento, si es que en lugar de quieto, quieres pasar a otro estado, como avanzar
Título: Re:Sprite comienza donde le da la gana
Publicado por: Xizotono en Diciembre 20, 2014, 11:09:58 AM
Thanks, la verdad es que ahora funciona mucho mejor. Antes de pregunta probe el image_index pero como no tenia mucha idea de para que servia pues me bloqueaba el sprite.

Desde ahora usare animation end, es mas comodo que las alarmas :)