Hola a todos,
me pregunto si hay alguna función en GM para comprobar si una alarma se está ejecutando.
Mi primera corazonada me llevó a intentar algo así como:
if (alarm[1]) {
<sentencia1>
}
if (alarm[2]) {
<sentencia2>
}
i
Pero por he hecho una pequeña prueba y no funciona.
¿Alguien sabe alguna manera de evaluar si una alarma se está ejecutado?
Gracias
Hol, colega, no entiendo bien la pregunta ya que hay contradicciones, cuando se ejecuta la alarma, la misma dura un solo step, o sea una sola vuelta del sistema, por lo cual es imposible detectarla mediante otro evento.
Pero si a lo que te refieres es saber si he declarado una alarma y el sistema esta esperando para ejecutarla lo puedes hacer verificando si alarm[0] > -1. (-1 es el valor de la alarma miestras no esta esperando)
Con esto tambien puedes ver los step que faltan para que se ejecute.
Te quedaria asi:
if (alarm[1] > -1) {
<sentencia mientras esta esperando ser ejecutada>
} else {
<sentencia cuando la alarma no esta en espera>
}
if (alarm[2] > -1) {
<sentencia mientras esta esperando ser ejecutada>
}
Saludos y espero haberme explicado bien.
Hola compañero noshy,
ahora que leo tu respuesta veo mi contradicción y nace de tener un concepto erróneo de las alarmas. Pero creo que me has abierto los ojo.
Cuando hablaba de si se estaba ejecutando me refería a si había comenzado la cuenta atrás para ejecutar las acciones de dicha alarma.
Ejemplo:
En Create:
alarm[0] = 5*room_speed;
//activo la alarma [0] que será llamada en 5 segundos (en verdad esta duración no es fija si no variable)
En alarm[0]:
<lo que sea en GML>
alarm[1]=3*room_speed;
//trascurridos 3 segundos se activará esta alarma(en verdad esta duración no es fija si no variable)
En alarm[1]:
<lo que sea en GML>
game_end();
Lo que quería saber es si el juego se encuentra ejecutando la cuenta atrás de alarm[0] o la de alarm[1] para durante el tiempo que duran esas cuentas regresivas hacer diferentes cosas.
Imagino que el código que sugieres puede funcionar... voy a ver.
Gracias.
Ups, pues me temo que o bien no lo entendí bien o no funciona lo que sugieres.
Dejo un ejemplo simple para poder evaluarlo mejor
EDITADO:
Vale, vale.... tonto yo :D
el fallo venía en mi condicional para calcular el modulo de los segundos y no en tu formula para ver si está corriendo la alarma.
Muchas gracias.
Colega, estuve probando tu ejemplo y lo he modificado para que veas como funciona, lo que no te esta funcionando es "show_debug_message" yo te hice lo mismo con el draw y tengas una idea de como funciona, tu con tiempo y paciencia te fijas en el resto del codigo.
Saludos y cualquier problema me avisas.