Noticias

¡Ayuda a la Comunidad GM, haz una donación!

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Rutas  (Leído 433 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Ikaro3d

en: Noviembre 30, 2019, 03:17:22 pm
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 ?

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado dixon

Respuesta #1 en: Diciembre 01, 2019, 03:51:44 pm
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
//[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}

EJEMPLO 2. Movimiento controlado con velocidad predefinida. EL OBJETO SALE DE LA ROOM SI LA VELOCIDAD ES MUY GRANDE

///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}

EJEMPLO 3. Movimiento aleatorio. Este es el movimiento donde el objeto decide para donde ir.
///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}
« última modificación: Diciembre 02, 2019, 10:53:43 pm por Johann »

Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.
 
Los siguientes usuarios dieron las gracias a este tema: Ikaro3d


Desconectado Ikaro3d

Respuesta #2 en: Diciembre 01, 2019, 11:06:27 pm
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
« última modificación: Diciembre 01, 2019, 11:20:14 pm por Ikaro3d »