Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: slampdesign en Julio 17, 2010, 10:04:13 PM

Título: Que no ejecute un evento determinado hasta que ?ste termine..???
Publicado por: slampdesign en Julio 17, 2010, 10:04:13 PM
Saludos de nuevo makeros... :D

Estoy trabado en mi juego, dado que cuando estoy editandolo me surgen nuevas y nuevas ideas, por lo que las dudas no paran de salir a flote...jeje, necesito que cuando un evento como a?adir health, pero poco a poco (como un post que acabo de resolver aqui) se este ejecutando, no se pueda a?adir mas hasta que complete su punto de llegada...

Alguna idea??? ???
Título: Re: Que no ejecute un evento determinado hasta que ?ste termine..???
Publicado por: Herni en Julio 17, 2010, 10:13:01 PM
Cita de: slampdesign en Julio 17, 2010, 10:04:13 PM
Saludos de nuevo makeros... :D

Estoy trabado en mi juego, dado que cuando estoy editandolo me surgen nuevas y nuevas ideas, por lo que las dudas no paran de salir a flote...jeje, necesito que cuando un evento como a?adir health, pero poco a poco (como un post que acabo de resolver aqui) se este ejecutando, no se pueda a?adir mas hasta que complete su punto de llegada...

Alguna idea??? ???

?Qu? tal una variable global en plan global.EventoActivo?

Mientras est? "true", otro evento no podr? activarse (mediante un if)

S?lo ser?a poner en los diferentes eventos que quieres limitar ese IF:
if (global.EventoActivo == false) // Como no hay evento activo, hago este
{
 global.EventoActivo = true;
 codigo_del_evento;
}



Edito a?adiendo esto:
Y luego en el evento pones otro if que libere la variable cuando haya terminado su funci?n:
if (he_terminado_de_ejecutarme) // Cuando el evento haya terminado su ejecuci?n
{
 global.EventoActivo = false;
}



Un saludo,
- Herni
Título: Re: Que no ejecute un evento determinado hasta que ?ste termine..???
Publicado por: slampdesign en Julio 17, 2010, 10:31:06 PM
supongamos que tengo un alarm, de 30 steps (el tiempo que tarda para que mi health tenga 30%) y que durante esa alarma no se pueda hacer este evento...
Título: Re: Que no ejecute un evento determinado hasta que ?ste termine..???
Publicado por: Herni en Julio 17, 2010, 10:51:37 PM
Cita de: slampdesign en Julio 17, 2010, 10:31:06 PM
supongamos que tengo un alarm, de 30 steps (el tiempo que tarda para que mi health tenga 30%) y que durante esa alarma no se pueda hacer este evento...

Qu? elemento o c?mo lanzas el otro evento? No el de subir la vida, si no el otro.

Para poder enfocar mejor la respuesta. Porque si no, de base ser?a la respuesta que te di antes.


Un saludo,
- Herni
Título: Re: Que no ejecute un evento determinado hasta que ?ste termine..???
Publicado por: slampdesign en Julio 17, 2010, 11:05:28 PM
bueno, algo mas facil seria (si existiera), la posibilidad de no agregar mas health o cantidad de una variable..entiendes???, esta seria mi solucion.

Necesito algo que me impida a?adirle mas valor o cantidad a una variable durante un determinado tiempo...
Título: Re: Que no ejecute un evento determinado hasta que ?ste termine..???
Publicado por: Herni en Julio 17, 2010, 11:31:29 PM
Cita de: slampdesign en Julio 17, 2010, 11:05:28 PM
bueno, algo mas facil seria (si existiera), la posibilidad de no agregar mas health o cantidad de una variable..entiendes???, esta seria mi solucion.

Necesito algo que me impida a?adirle mas valor o cantidad a una variable durante un determinado tiempo...

Creas una alarma que ser? (y cito tu propia pregunta) la que indique "un determinado tiempo" durante el cu?l no se podr? "a?adir m?s valor o cantidad a una variable"


En tu funci?n para "a?adir m?s valor o cantidad a una variable" pones este IF:

if (global.EventoBloqueado == false) // Si mi evento no est? bloqueado, lo ejecuto
{
 codigo_del_evento_a?adir_valor;
}



Y en la funci?n que quieres que "impida a?adirle m?s valor o cantidad a una variable durante un determinado tiempo" pones esto:

global.EventoBloqueado = true;
alarma[0] = "determinado_tiempo";



Luego en el evento de la alarma[0] pones este c?digo:

global.EventoBloqueado = false;  // Permite que se pueda volver a ejecutar el otro evento


Un saludo,
- Herni