Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: nonoroman en Noviembre 05, 2015, 12:54:53 PM

Título: CREAR ALARMA EN EL STEP
Publicado por: nonoroman en Noviembre 05, 2015, 12:54:53 PM
Buenas, otra vez por aqui. Ahora tengo otra duda.

Estoy creando alarmas en eventos como colisiones, al pulsar una tecla. etc, etc. Y todo va perfecto.

Pero a la hora de crear una alarma en el evento step. Esta no se ejecuta.

Alguien sabe algo?? El porque?? y como solucionarlo??

Espero vuestros consejos, mientras seguire estudiandolo. Saludos.
Título: Re:CREAR ALARMA EN EL STEP
Publicado por: elviskelley en Noviembre 05, 2015, 03:47:07 PM
Se repite la orden del tiempo de ejecucion, por lo cual el tiempo nunca avanza, ejemplo; dices que la alarm0es 5, luego se repide 30 veces por segundo, donde vuelve a decir que la alarm es 5. siempre actualiza el conteo.
si colocaras alarm
Título: Re:CREAR ALARMA EN EL STEP
Publicado por: Guacusio en Noviembre 05, 2015, 04:25:13 PM
Tendrías que indicar el código completo que hay en ese evento para entender por qué falla. Tal vez se está iniciando en cada step, como dice elviskelley; tal vez tienes una condición para iniciarla pero está mal planteada.
Título: Re:CREAR ALARMA EN EL STEP
Publicado por: nonoroman en Noviembre 05, 2015, 06:04:05 PM
Oleee. elviskelley. Efectivamente con este truco si que funciona, aunque en vez de multiplicar lo he divido y Bingo.

Muchas gracias de verdad, te debo salir en los creditos, ya sois dos, penumbra y tu. Asi que con tu permiso.

Muchas gracias, ahora a continuar con el motor de programacion del juego. Saludos y gracias.

Cita de: elviskelley en Noviembre 05, 2015, 03:47:07 PM
Se repite la orden del tiempo de ejecucion, por lo cual el tiempo nunca avanza, ejemplo; dices que la alarm0es 5, luego se repide 30 veces por segundo, donde vuelve a decir que la alarm es 5. siempre actualiza el conteo.
si colocaras alarm
  • =5*room_speed; ya seria otra cosa.
Título: Re:CREAR ALARMA EN EL STEP
Publicado por: nonoroman en Noviembre 06, 2015, 07:56:40 PM
Buenas otra vez ando por aqui. Solucione el tema de llamar a la alarma desde el step con el truco de elviskelley, dividiendo un numero entre la room_speed

El caso es que ahora, necesito llamar una alarma cuando se produce una colision. Y me encuentro que sucede algo parecido.
Mientras los objectos colisionan la alarma no cuenta. y cuando los objectos dejan de colisionar, entonces la alarma cuenta los pasos y despues se ejecuta.

He probado con introducir en los pasos de la alarma el truco de numero/room_speed pero en este caso no funciona.

Asi que me estoy volviendo loco con el tema de llamar las alarmas, con lo bien que se le da la alarma de mi despertador todas las mañanas. jajajajjaa.

Bueno, espero que me echeis una mano.

Saludos a todos.

Cita de: elviskelley en Noviembre 05, 2015, 03:47:07 PM
Se repite la orden del tiempo de ejecucion, por lo cual el tiempo nunca avanza, ejemplo; dices que la alarm0es 5, luego se repide 30 veces por segundo, donde vuelve a decir que la alarm es 5. siempre actualiza el conteo.
si colocaras alarm
  • =5*room_speed; ya seria otra cosa.
Título: Re:CREAR ALARMA EN EL STEP
Publicado por: kostra en Noviembre 07, 2015, 12:43:49 PM
no dividas lel, al multiplicar por room_speed, como te dijo penumbra en otro tema, es como poner segundos. "5*room_speed" = 5 segundos.

Tu problema, me imagino que es el mismo que en el tema ese que te digo, el de la colisión, haz lo mismo, una variable en create, ejemplo... act = false;

y donde la alarm ponlo asi
if act == false
{
    alarm[0] = 5*room_speed;
}

ya que a TODAS LAS COSAS, por el hecho de estar en el evento step, se repite una y otra vez, entonces estás diciendo TODO EL RATO que alarm[0] = 5*room_speed; y como es SIEMPRE ASI, pues no baja nunca para llegar a cero xD. Entonces, puedes controlar todo bucle con una variable.

PD: espero que sea ese tu problema xDD
Título: Re:CREAR ALARMA EN EL STEP
Publicado por: Markus en Noviembre 13, 2015, 02:00:47 AM
Una opción más simple es:


if (alarm[0] < 0) //o puedes poner (alarm[0] == -1)
{
  alarm[0] = 5 * room_speed; //o el tiempo que quieras
}


Las alarmas, mientras aún no las activas, tienen el valor de -1. Así que si su valor ya no es -1, quiere decir que ya la activaste.

Saludos
Título: Re:CREAR ALARMA EN EL STEP
Publicado por: Marth en Noviembre 13, 2015, 07:23:44 AM
¿Puedes pasarnos el código?
Si pones sin más alarm[0]=60, pues eso se repite en cada step y nunca llega a terminar la cuenta atrás.
Título: Re:CREAR ALARMA EN EL STEP
Publicado por: elviskelley en Noviembre 16, 2015, 12:18:46 PM
Cita de: kostra en Noviembre 07, 2015, 12:43:49 PM
no dividas lel, al multiplicar por room_speed, como te dijo penumbra en otro tema, es como poner segundos. "5*room_speed" = 5 segundos.

Tu problema, me imagino que es el mismo que en el tema ese que te digo, el de la colisión, haz lo mismo, una variable en create, ejemplo... act = false;

y donde la alarm ponlo asi
if act == false
{
    alarm[0] = 5*room_speed;
}

ya que a TODAS LAS COSAS, por el hecho de estar en el evento step, se repite una y otra vez, entonces estás diciendo TODO EL RATO que alarm[0] = 5*room_speed; y como es SIEMPRE ASI, pues no baja nunca para llegar a cero xD. Entonces, puedes controlar todo bucle con una variable.

PD: espero que sea ese tu problema xDD
hay un pequeño error aqui.
if act == false
{
    alarm[0] = 5*room_speed;
act=true; //falto agregar esto.
}
Título: Re:CREAR ALARMA EN EL STEP
Publicado por: kostra en Noviembre 16, 2015, 12:54:19 PM
ups, cierto, gracias EK