Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

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: time line + rutas  (Leído 673 veces)

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

Desconectado Ikaro3d

en: Enero 06, 2020, 02:38:03 am
Hola ando peleándome con lineas de tiempo y las rutas , resulta que desde la linea de tiempo 30 quiero modificar una variable para activar una ruta , tengo 3 rutas diferentes  swuitsque ey no se si se puede hacer este es el ejemplo
step ---
switch (ruta) {
   
        case 1:path_start(ruta_babosa_arriba, 15, path_action_stop, false);
       
        break;
       
        case 2:path_start(ruta_babosa_mitad, 15, path_action_stop, false);
       
        break;
       
       
        case 3:path_start(ruta_babosa_abajo, 15, path_action_stop, false);
       
        break;
       
    default:
       rutas=false
break;
     


en el evento linia de tiempo 30  ,en el tiempo  120 tengo otra difrente ruta 2

with(obj_enemigo_gamba) {
ruta = 1;

}

instance_create_layer(x + 0, y + 0, "Instances", obj_control_

no consigo que se genere o si es mejor crear  el objeto por separado con diferentes rutas a sin si que me funciona pero encuentro engorroso tener que duplicar el enemigo
« última modificación: Enero 18, 2020, 07:38:15 pm por Ikaro3d »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado dixon

Respuesta #1 en: Enero 06, 2020, 07:36:37 pm
Hi, buenas tardes y buen provecho.

Ahora bien, voy a trabajar con suposiciones:

1. supongo que tienes varias rutas
2. supongo que quieres que el enemigo decida cual ruta elegir por si solo
3. supongo que el nemigo decide a donde ir
4. supongo que el enemigo se debe mover por si solo
5. supongo que las rutas son para el enemigo
6. supongo que cada enemigo debe elegir su ruta por si solo

Ya, dejaré de suponer. Ahora bien la pregunta que debistes formular es la siguiente:

¿como hago que el enemigo decida escoger una ruta?
¿como hago para que el enemigo camine por si solo y decida escoger una ruta de tres rutas distintas?
¿como hago para que el enemigo al ser creado decida una ruta cualquiera?

Bien...

Bajo esos datos construí esto:


Ahora tengo una babosa que camina para donde ella quiere y yo no tengo que decirle nada, ella solo toma su camino y toma otro camino y vuelve y toma otro , toma el que ella quiera. Yo nunca termino de saber cual será su próximo paso.

¿Cómo lo conseguí? pues...

con este único codigo en una alarma 0

Código: [Seleccionar]
ruta=1+floor(random(3))
alarm[0]=20

switch (ruta) {
   
        case 1:path_start(ruta_babosa_arriba, 15, path_action_stop, false);
       
        break;
       
        case 2:path_start(ruta_babosa_mitad, 15, path_action_stop, false);
       
        break;
       
       
        case 3:path_start(ruta_babosa_abajo, 15, path_action_stop, false);
       
        break;
       
    default:
       rutas=false
break;
}


Pero supongo que algo faltó, porque el objetivo no es que el objeto se mueva por si solo , al parecer lo que se quiere es usar el time line.... Yavá, un momento yavá.  dejame pensar....
Ya sé..... jejejejejjeje

Glosario:
  Yavá,  en Venezuela esta expresión significa "Dame unos instantes", "Espera un momento", "Dejame respirar", "Dejame hablar", "Dame unos minutos", etc...

SI, LO QUE Quieres es usar un time line para darle distintos movimientos en distintas situaciones entonces olvidamos el alarm[0] bueno no del todo porque vas a colocar un código en el alarm 0... Ya verás.

La solución sería:

1. Colocar tu código en la alarm[0] del enemigo
2. Constuir un time line de la siguiente forma
   En el tiempo 30 colocar una pieza de código con lo siguiente:
Código: [Seleccionar]
   ruta=1
  alarm[0]=1
  En el tiempo 120 colocar una pieza de código con lo siguiente:
Código: [Seleccionar]
  ruta=2
  alarm[0]=1
  En el tiempo 200 colocar una pieza de código con lo siguiente
Código: [Seleccionar]
ruta= 3
 alarm[0]=1


La función de alarm 0 será la de ejecutar el código que en ella se encuentra y eso es todo....... ave a aver avaer..... pues, ami me funcionó , ahora yo le digo a la babosa para donde tiene que ir y cuando se tiene que mover.
« última modificación: Enero 06, 2020, 07:50:52 pm por dixon »

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: Enero 06, 2020, 11:07:11 pm
Desde hoy soy tu fan :D, has supuesto adecuadamente
La segunda obcion es la que necesito, muchas gracias, te lo agradezco da gusto entrar en esta comunidad

 


Desconectado Ikaro3d

Respuesta #3 en: Enero 18, 2020, 07:47:01 pm
Hi, buenas tardes y buen provecho.

Ahora bien, voy a trabajar con suposiciones:

1. supongo que tienes varias rutas
2. supongo que quieres que el enemigo decida cual ruta elegir por si solo
3. supongo que el nemigo decide a donde ir
4. supongo que el enemigo se debe mover por si solo
5. supongo que las rutas son para el enemigo
6. supongo que cada enemigo debe elegir su ruta por si solo

Ya, dejaré de suponer. Ahora bien la pregunta que debistes formular es la siguiente:

¿como hago que el enemigo decida escoger una ruta?
¿como hago para que el enemigo camine por si solo y decida escoger una ruta de tres rutas distintas?
¿como hago para que el enemigo al ser creado decida una ruta cualquiera?

Bien...

Bajo esos datos construí esto:


Ahora tengo una babosa que camina para donde ella quiere y yo no tengo que decirle nada, ella solo toma su camino y toma otro camino y vuelve y toma otro , toma el que ella quiera. Yo nunca termino de saber cual será su próximo paso.

¿Cómo lo conseguí? pues...

con este único codigo en una alarma 0

Código: [Seleccionar]
ruta=1+floor(random(3))
alarm[0]=20

switch (ruta) {
   
        case 1:path_start(ruta_babosa_arriba, 15, path_action_stop, false);
       
        break;
       
        case 2:path_start(ruta_babosa_mitad, 15, path_action_stop, false);
       
        break;
       
       
        case 3:path_start(ruta_babosa_abajo, 15, path_action_stop, false);
       
        break;
       
    default:
       rutas=false
break;
}


Pero supongo que algo faltó, porque el objetivo no es que el objeto se mueva por si solo , al parecer lo que se quiere es usar el time line.... Yavá, un momento yavá.  dejame pensar....
Ya sé..... jejejejejjeje

Glosario:
  Yavá,  en Venezuela esta expresión significa "Dame unos instantes", "Espera un momento", "Dejame respirar", "Dejame hablar", "Dame unos minutos", etc...

SI, LO QUE Quieres es usar un time line para darle distintos movimientos en distintas situaciones entonces olvidamos el alarm[0] bueno no del todo porque vas a colocar un código en el alarm 0... Ya verás.

La solución sería:

1. Colocar tu código en la alarm[0] del enemigo
2. Constuir un time line de la siguiente forma
   En el tiempo 30 colocar una pieza de código con lo siguiente:
Código: [Seleccionar]
   ruta=1
  alarm[0]=1
  En el tiempo 120 colocar una pieza de código con lo siguiente:
Código: [Seleccionar]
  ruta=2
  alarm[0]=1
  En el tiempo 200 colocar una pieza de código con lo siguiente
Código: [Seleccionar]
ruta= 3
 alarm[0]=1


La función de alarm 0 será la de ejecutar el código que en ella se encuentra y eso es todo....... ave a aver avaer..... pues, ami me funcionó , ahora yo le digo a la babosa para donde tiene que ir y cuando se tiene que mover.


Hola hasta el dia de hoy no he podido realizar pruebas ,como me has enseñado, tengo las rutas en la alarma ,y con la linia de tiempo le voy cambiando la ruta en el l momento deseado perooooo......resulta que si voy creando instancias del mismo objeto todas las que van saliendo ejecutan la misma ruta ,como lo hago para que cada una de ellas se individuales?

 


Desconectado dixon

Respuesta #4 en: Enero 20, 2020, 01:25:07 am
Hola.

Puedes hacer que decida la ruta en la primera ruta, de la siguiente manera:

Código: [Seleccionar]
ruta=1+floor(random(3))
alarm[0]=1

Pero, quizás no cuadren los movimientos porque tienes una ruta definida. Por lo tanto tendrías que crear diversas rutas en distintos time lines y la babosa debería decidir no la ruta sinó mas bien el time line con el conjunto de rutas para que todo tu trayecto cuadre.


En la imagen cada ruta corresponde a un time line distinto.



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é.