Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: vitail en Noviembre 14, 2014, 12:35:32 AM

Título: Hacer un tiempo de espera cada vez que dispara
Publicado por: vitail en Noviembre 14, 2014, 12:35:32 AM
Estoy haciendo un juego y estoy haciendo asi

// Player Shoots
if keyboard_check(ord("Z")){
    instance_create(x,y,obj_bala)
}


si hago eso creara muchas instancias y no me sirve eso por que el juego es estilo space invaders y quiero hacer como un tiempo de espera, por favor expliquenme bien lo que se esta haciendo en el script si pueden.
Título: Re:Hacer un tiempo de espera cada vez que dispara
Publicado por: Mega G en Noviembre 14, 2014, 12:45:18 AM
Puedes añadir una variable que al principio vale 1:

Evento <Create>:
disparar=1

Tu nave sólo podrá disparar si la variable vale 1, y así lo implementas en el código que tenías:

// Player Shoots
if keyboard_check(ord("Z")) and disparar=1 {
    instance_create(x,y,obj_bala)
    disparar=0
    alarm[0]=10
}


Como ves, una vez has disparado la variable cambia a 0 para no dejarte disparar una segunda vez.
Luego gracias a alarm[0]=10, al cabo de 10 steps se ejecutará el evento <Alarm 0>.

En ese evento pondremos:
disparar=1

De tal forma que cada vez que dispares te impida volver a disparar inmediatamente pero al cabo de 10 steps puedas volver a hacerlo.

Ajusta tú mismo el tiempo de la alarma para poder disparar más o menos balas seguidas.

¡Saludos y espero que te haya servido!
Título: Re:Hacer un tiempo de espera cada vez que dispara
Publicado por: vitail en Noviembre 14, 2014, 02:20:43 AM
Gracias habia echo algo con el alarm pero no me habia servido y este no lo he probado.