Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: woolf7 en Marzo 06, 2015, 12:57:51 AM

Título: ¿Una variable o función para dejar pasar tiempo?
Publicado por: woolf7 en Marzo 06, 2015, 12:57:51 AM
En el evento step:
if (image_index = 7){
  image_index = 8;
}
if (image_index = 8){
  image_sprite = 7;
}
if (image_index != 7 && image_index != 8){
  image_speed = 1;
}

Por ejemplo tengo un sprite de 9 frames, en la que los primeros 7 se reproducirán y después el ciclo se hará infinito entre el frame 7 y 8.
Pero ¿Como le hago para establecer un tiempo de cambio?
Porque al llegar a los frames 7 y 8, todo pasa tan rápido que solo se aprecia el frame 7.
Intente con image_speed, pero hizo que se repitieran de nuevo todos los frames del sprite.
Y a mi lo que me interesa es que los primeros frames se reproduzcan solo una vez, y que luego solo cambie del frame 8 al 9 y viceversa, a una velocidad que se puedan apreciar ambas.
No se si me explique?
Título: Re:¿Una variable o función para dejar pasar tiempo?
Publicado por: penumbra en Marzo 06, 2015, 01:57:51 AM
La manera más fácil de lograr lo que quieres sería usar dos sprites, uno con los primeros 7 frames, y cuando ese sprite llegue a su fin, cambiar de sprite a uno que sólo contenga los frames 7 y 8.

Si de todas maneras, prefieres usar un único sprite:
[gml]
if image_index < 7
     image_speed = 0.5
else
{
     salto = true
     image_speed = 0.05      //Velocidad muy baja, para que se aprecien los dos últimos
}

if (salto) and (image_index < 7)
     image_index = 7                   //saltar a la subimagen  8
[/gml]

No lo he probado, pero en esencia la idea me parece correcta. la variable salto se debe inicializar en 0 en CREATE para que funcione.