Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: king195 en Julio 29, 2014, 02:30:43 PM

Título: Ejecutar una acción pasado el tiempo del Alarm?
Publicado por: king195 en Julio 29, 2014, 02:30:43 PM
Como puedo hacer que se ejecute una acción una vez ha pasado el tiempo del Alarm, imaginemos que quiero hacer un ataque, teniendo en cuenta que el ataque es la acción, como puedo hacer para que una vez acabado el tiempo del alarm haga el ataque?

Ya que cuando lo intento siempre hace primero el ataque y después empieza a contar hasta que se encuentra de nuevo con la posibilidad de realizarlo, por así decirlo quiero que haga eso a la inversa, que empiece a hacer el ataque una vez el contador del Alarm haya acabado.

Ideas?
Título: Re:Ejecutar una acción pasado el tiempo del Alarm?
Publicado por: Maximo en Julio 29, 2014, 03:00:12 PM
por ejemplo, si quieres hacer que el ataque se accione con en espacio  y  se accione a los 100 steps pones en el evento step:
if(keyboard_check_pressed(vk_space)){alarm[0] = 100}
Esto hará que cada vez que el jugador accione el espacio y pasen 100 steps se accione el evento alarm 0.
En el evento alarm 0 pones las variables para que comience el ataque
Título: Re:Ejecutar una acción pasado el tiempo del Alarm?
Publicado por: king195 en Julio 29, 2014, 03:03:00 PM
Cita de: Maximo en Julio 29, 2014, 03:00:12 PM
por ejemplo, si quieres hacer que el ataque se accione con en espacio  y  se accione a los 100 steps pones en el evento step:
if(keyboard_check_pressed(vk_space)){alarm[0] = 100}
Esto hará que cada vez que el jugador accione el espacio y pasen 100 steps se accione el evento alarm 0.
En el evento alarm 0 pones las variables para que comience el ataque

Nope, no me has entendido, lo voy a hacer más claro con tu ejemplo.

Tu me dices que se acciona a los 100 steps, pero antes de que se accione la siguiente accion

La primera acción de ataque se acciona en el step 0 y la alarma desde ahí cuenta los otros 100 para hacer el siguiente. Pero antes de que te haga el siguiente en los 100 steps  hay 1 que ya lo ha hecho y ha sido el primero.

La alarma siempre cuenta desde el principio al siguiente, lo que quiero es que primero pasen los 100 steps y después de esos 100 se haga la acción.
Título: Re:Ejecutar una acción pasado el tiempo del Alarm?
Publicado por: Maximo en Julio 29, 2014, 03:57:16 PM
No entiendo lo que quieres decir. Explícamelo mejor por favor.
Título: Re:Ejecutar una acción pasado el tiempo del Alarm?
Publicado por: luckylandia007 en Julio 29, 2014, 04:10:01 PM
Claro, me parece que no entendiste bien copmo funciona la alarm..

Vos con alarm[0]=100 step estas generando una intruccion a los 100 step de cuando se comando esa alarm...


veamos un ejemplo diferente para que lo comprendas mejor..

Evento create
alarm[0]=60


Evento alarm[0]
Game_end


el ejemplo anterior dice que cuando se cree el objeto a los 60 step pasará lo que puse en el evento alarm, osea que el juego finalice.



Título: Re:Ejecutar una acción pasado el tiempo del Alarm?
Publicado por: king195 en Julio 29, 2014, 04:34:25 PM
Cita de: luckylandia007 en Julio 29, 2014, 04:10:01 PM
Claro, me parece que no entendiste bien copmo funciona la alarm..

Vos con alarm[0]=100 step estas generando una intruccion a los 100 step de cuando se comando esa alarm...


veamos un ejemplo diferente para que lo comprendas mejor..

Evento create
alarm[0]=60


Evento alarm[0]
Game_end


el ejemplo anterior dice que cuando se cree el objeto a los 60 step pasará lo que puse en el evento alarm, osea que el juego finalice.

No. En este caso no sucede eso. Cuando un enemigo me ataca mi vida baja a hp -1, en el primer ataque, en el siguiente hay una diferencia de 100 steps, pero el primero se ejecuta sin que pasen esos 100 steps, he tenido problemas con eso y aun no lo he solucionado.

Vale ya, encontré el problema, gracias a los que me habéis ayudado.
Título: Re:Ejecutar una acción pasado el tiempo del Alarm?
Publicado por: Maximo en Julio 29, 2014, 04:42:23 PM
Entonces lo que tienes que hacer es poner en el evento create de los enemigos:

var_ataque = true //cuando empieza el juego puedes atacar

en el alarm 0

var_ataque = true

cuando tu enemigo te ataque tienes que poner algo como:

if(var_ataque = true)
{
   //aquí pon lo que pasa cuando el enemigo ataca
    alarm[0] = 100   
    var_ataque = false
}

esto hará que cuando el enemigo ataque tiene que esperar 100 steps para atacar de nuevo
Título: Re:Ejecutar una acción pasado el tiempo del Alarm?
Publicado por: king195 en Julio 29, 2014, 05:41:25 PM
Cita de: Maximo en Julio 29, 2014, 04:42:23 PM
Entonces lo que tienes que hacer es poner en el evento create de los enemigos:

var_ataque = true //cuando empieza el juego puedes atacar

en el alarm 0

var_ataque = true

cuando tu enemigo te ataque tienes que poner algo como:

if(var_ataque = true)
{
   //aquí pon lo que pasa cuando el enemigo ataca
    alarm[0] = 100   
    var_ataque = false
}

esto hará que cuando el enemigo ataque tiene que esperar 100 steps para atacar de nuevo

Mmmm un problema que me ha surgido es que cuando por ejemplo el enemigo me toca el Alarm empieza a contar y no se restaura. Sigue contando hasta que me pega de nuevo y me quita directamente la vida.

Lo suyo seria una vez que el enemigo no esta al lado del personaje atacandole que se restaurase el Alarm.
Título: Re:Ejecutar una acción pasado el tiempo del Alarm?
Publicado por: Maximo en Julio 29, 2014, 06:08:55 PM
en ese caso yo pondría en el step del enemigo algo como:
if(point_distance(x,y,obj_jugador.x,obj_jugador.y) > 400){var_ataque = true}
esto hace que si el jugador esta alejado se restaure el ataque, el 400 es la distancia, puedes modificarlo a tu gusto.