Hola familia ,vengo a formular unas preguntas ya que me surgen muchas dudas de como llevar en orden esta tarea
de que manera mas limpia y eficaz puedo utilizar las rutas ?
por ejemplo yo lo estoy utilizando de esta manera para un mismo objeto y no se si realmente hay otra forma de hacerlo
tengo una objeto _arriba ,objeto _enmedio, objeto _abajo todos tienen el mismo spr
objeto_contol_arriba
objeto_contol_enmedio
objeto_contol_abajo
y las rutas corepondientes arriba;enmedui y abajo
y esos los controlo con control_timeline
me gustaría saber si se puede simplificar sin tener que duplicar tantas veces el objeto ?
Hola, buenos días.
Si te refieres a movimientos de un enemigo que se controla por una time line pues este es mi consejo entendible.
1. En create creas una variable llamada tiempo de tipo numerico (tiempo=0)
2. En create creas otra variable llamada ruta de tipo string (ruta="")
3. En step haces que tiempo se sume 1 por cada stem (tiempo+=1)
4. En step el tiempo debe volver a ser cero cuando llegue a un limite (if(tiempo>500){tiempo=0})
5. En step dices lo que sucederá en cada cierto tiempo (if(tiempo=50)ruta="arriba")
6. En step defines los movimientos por movimientos X y Y pero tambien puedes usar las variables vspeed y hspeed.
Ejemplo 1. Ejemplo más simple de un movimiento controlado
[gml]//[EVENTO CREATE¡
tiempo=0
ruta=""
//[EVENTO STEP]
//control del tiempo
tiempo+=1
if(tiempo>500){tiempo=0}
if(tiempo>50)ruta="arriba"
if(tiempo>150)ruta="derecha"
if(tiempo>250)ruta="abajo"
if(tiempo>350)ruta="izquierda"
if(tiempo>450)ruta="parar"
///movimiento
if(ruta="arriba"){y-=1}
if(ruta="derecha"){x+=1}
if(ruta="abajo"){y+=1}
if(ruta="izquierda"){x-=1}[/gml]
EJEMPLO 2. Movimiento controlado con velocidad predefinida. EL OBJETO SALE DE LA ROOM SI LA VELOCIDAD ES MUY GRANDE
[gml]///EVENTO CREATE
tiempo=0
ruta=""
velocidad=5
///EVENTO STEP
tiempo+=1
if(tiempo>500){tiempo=0}
if(tiempo>50)ruta="arriba"
if(tiempo>150)ruta="derecha"
if(tiempo>250)ruta="abajo"
if(tiempo>350)ruta="izquierda"
if(tiempo>450)ruta="parar"
///movimiento
if(ruta="arriba"){y-=velocidad}
if(ruta="derecha"){x+=velocidad}
if(ruta="abajo"){y+=velocidad}
if(ruta="izquierda"){x-=velocidad}[/gml]
EJEMPLO 3. Movimiento aleatorio. Este es el movimiento donde el objeto decide para donde ir.
[gml]///EVENTO CREATE
tiempo=0
ruta=""
velocidad=1
aleatorio=0
///EVENTO STEP
tiempo+=1
if(tiempo=10){aleatorio=floor(1+random(4))}
if(tiempo=50){aleatorio=0} ///AQUI DETENEMOS UNOS SEGUNDOS AL OBJETO
if(tiempo>75){tiempo=0}
if(aleatorio=1)ruta="arriba"
if(aleatorio=2)ruta="derecha"
if(aleatorio=3)ruta="abajo"
if(aleatorio=4)ruta="izquierda"
if(aleatorio=0)ruta="parar"
///movimiento
if(ruta="arriba"){y-=velocidad}
if(ruta="derecha"){x+=velocidad}
if(ruta="abajo"){y+=velocidad}
if(ruta="izquierda"){x-=velocidad}[/gml]
Gracias por tu tiempo te estoy agradecido ,que Currada te has dado ,estos ejemplos los llevare a acabó en ciertos enemigos ,de alguna forma el aleatorio seria como inteligencia artificial, me lo miraré con lupa
ahora mismo tengo 3 rutas creadas para 1 enemigo y creo que en un swicht y en cada caso podre exponer, que ruta quiero que ejecute y controlar en un timeline en que momento aparecer una de las 3