Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Jaxx en Febrero 27, 2022, 06:35:00 AM

Título: Como hacer que el codigo espere
Publicado por: Jaxx en Febrero 27, 2022, 06:35:00 AM
Haber me explico.
quiero hacer que el codigo espere cierta cantidad de tiempo para empezar a ejecutar otra variable sin necesidad de que sea un bucle, podria hacer una variable que funcione de contador pero no sirve cuando quieres hacer por ejemplo: una suma que sea constante, ya que esta solo se sumara cada vez que el contador llegue a cero.
no se si habra alguna funcion para ello, y si no la hay me conformo con cualquier alternativa
Título: Re: Como hacer que el codigo espere
Publicado por: Anton Mamey en Febrero 27, 2022, 07:09:13 AM
deberia poner su codigo para darnos una idea mas clara sobre lo que desea hacer.
un contador o temporizador puede ejecutarse infinitamente y puede escribir algo como esto para realizar una accion cada cierto tiempo.
pero tal vez lo que necesite es una boleana las boleanas son variables que  entregan true para ejecutar un codigo o false para interumpir o  evitar que se ejecute dicho codigo o visceversa son simples comprobaciones, entonces teniendo eso en cuenta crea su temporizador o alarma una vez pasado el tiempo de retraso activa su variable boleana para ejecutar el codigo que desea ejecutar una vez hecho todo , resetea su temporizador desactiva su boleana y el bucle comienza otra vez, pero si no quiere complicarse la vida puede aprender a usar TIMELINES tal vez sea lo que buscaba
https://manual-es.yoyogames.com/index.htm#t=The_Asset_Editors%2FTimelines.htm
[gml]

tiempo++;  //temporizador contara infinitamente hasta que lo detenga

if(tiempo%60==0)
{
  //haz esto
}

[/gml]
Título: Re: Como hacer que el codigo espere
Publicado por: Alemar5 en Febrero 28, 2022, 02:09:17 AM
En el caso de que estes usando game maker 2, te recomiendo esta herramienta, es gratis y esta en el marketplace de yoyogames, es una funcion que te permite hacer lo que dices, eliges el tiempo, la accion y si se repite, es bastante comodo y util, espero te sirva:

https://marketplace.yoyogames.com/assets/9603/wait-code
Título: Re: Como hacer que el codigo espere
Publicado por: Jeffrey Faper en Marzo 02, 2022, 08:01:46 PM
puede hacerlo de muchas maneras con alarmas ,  temporizadores o timelines
las alarmas tienen el inconveniente, que esta limitado a 12 alarmas.
los timers tiene que activarlos, desactivarlos o resetearlos usted mismo dan mas trabajo en comparacion a una alarma.
las timelines jamas las he usado.
[gml]
//ejemplo alarma
//evento create
alarm[0] = room_speed*2;  //tiempo de espera del codigo
//evento alarm 0
  //ejecuta codigo

//ejemplo timer
//evento step
//timer por segundos. como solo va hacer funcion de activador no hace falta crear la variable en el evento create
var codeAwaits = 0+floor(current_time/1000);
if(codeAwaits>=tiempoDeseado ){
    //ejecuta codigo
   
   }
[/gml]
como no puso codigo es lo menos que le puedo ayudar

Título: Re: Como hacer que el codigo espere
Publicado por: 0m@R en Marzo 05, 2022, 11:35:56 PM
nunca usen alarmas, eso no tiene corrección delta time, en GM toca hacer los temporizadores uno mismo si quiere que las cosas queden bien, es muy fácil además:
https://www.comunidadgm.org/preguntas-y-respuestas/como-crear-un-delta-time-general-resuelto/

y lo que dice el post, creo que es común en microcontroladores, Arduino y lenguajes como Python pausar el código, en software eso no se hace, el main loop no debe bloquearse, puede traer líos, y en GM no creo que se pueda.

lo que debes hacer es reestructurar lo que quieres hacer, para que funcione con scripts, de manera secuencial respetando el main loop, como no das más información, es lo mas que te puedo decir.