Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: romon_28 en Julio 05, 2017, 01:56:12 PM

Título: timeline_moment_add_script
Publicado por: romon_28 en Julio 05, 2017, 01:56:12 PM
timeline_moment_add_script no funciona bien en Windows :/
alguien sabe como puedo hacer?

[gml]
///Enemigo1_IA()
_tl = timeline_add();

for(var i=0;i<10;i++){
  timeline_moment_add_script( _tl , i*10 , TM_Mover );
}

timeline_index = _tl;
timeline_position = 0;
timeline_speed = 1;
timeline_running = true;
[/gml]

[gml]
///TM_Mover()
direction = random(360);
[/gml]
Título: Re:timeline_moment_add_script
Publicado por: Clamud en Julio 05, 2017, 06:57:17 PM
¿El primer bloque de código se ejecuta en Create?
Título: Re:timeline_moment_add_script
Publicado por: romon_28 en Julio 05, 2017, 07:27:47 PM
Podría ir en el evento "create".
Título: Re:timeline_moment_add_script
Publicado por: Clamud en Julio 05, 2017, 08:15:59 PM
Si está en el evento Step debes quitar esto timeline_position = 0;
Título: Re:timeline_moment_add_script
Publicado por: Zapdos43 en Julio 05, 2017, 08:28:45 PM
A mí también me falla la función de timeline_moment_add_script(). En mi caso solo ejecuta una vez el script TM_Mover().

He probado una solución:

1º Creas un Timeline en el árbol de recursos. Lo llamaré tm_movimiento. En las propiedades del timeline añadiré los Steps (de 0 a 100, sumando de 10 en 10). En el Step 0 pondré la acción Execute code donde escribimos el código:
TM_Mover();
Repetimos esto con el resto de Steps.

2º Luego en el objeto que va a usar el timeline tm_movimiento, en el CREATE EVENT colocas:
timeline_index = tm_movimiento;
timeline_speed = 1;
timeline_loop = false;
timeline_running = true;

Y en el Step event puse esto para detener el timeline:
if timeline_position > 100
   {
   timeline_speed = 0;
   timeline_position = 0;
   }