yo usaria algo como
Al presionar 'o'
ataque = true; quieto = false;
en [STEP]
if (atacar == true)
sprite_index = spr_ataque
if (quieto == true)
sprite_index = spr_quieto
en [ANIMATION END]
if sprite_index == spr_ataque
{
quieto = 1 //Regresar al estado "quieto" después de llegar a la última subimagen del sprite
atacar = 0 // Finalizar ataque
}
Obviamente, las variables quieto y atacar las tienes que definir antes en CREATE. También debes definir la velocidad de animación adecuada para que el ataque no se vea ni muy rápido ni muy lento
Aunque se puede entender que image_index se usa para cambiar sprites, en realidad se usa para cambiar subimágenes de un mismo sprite. Para cambiar entre distintos sprites se usa sprite_index
Los valores de image_index pueden mostrar decimales dependiendo de la velocidad de animación (image_speed), pero GM siempre redondea, ya que entre la subimagen 0 y la 1 no hay ni puede haber realmente una subimagen 0.5, o muestra la 0 o la 1.
Al presionar 'o'
ataque = true; quieto = false;
en [STEP]
if (atacar == true)
sprite_index = spr_ataque
if (quieto == true)
sprite_index = spr_quieto
en [ANIMATION END]
if sprite_index == spr_ataque
{
quieto = 1 //Regresar al estado "quieto" después de llegar a la última subimagen del sprite
atacar = 0 // Finalizar ataque
}
Obviamente, las variables quieto y atacar las tienes que definir antes en CREATE. También debes definir la velocidad de animación adecuada para que el ataque no se vea ni muy rápido ni muy lento
Aunque se puede entender que image_index se usa para cambiar sprites, en realidad se usa para cambiar subimágenes de un mismo sprite. Para cambiar entre distintos sprites se usa sprite_index
Los valores de image_index pueden mostrar decimales dependiendo de la velocidad de animación (image_speed), pero GM siempre redondea, ya que entre la subimagen 0 y la 1 no hay ni puede haber realmente una subimagen 0.5, o muestra la 0 o la 1.