Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: penumbra en Julio 13, 2013, 09:04:44 PM

Título: [SOLUCIONADO]: Las cosas no se dibujan en pantalla al salir de la pausa
Publicado por: penumbra en Julio 13, 2013, 09:04:44 PM
Hola comunidad, solicito ayuda para resolver mi siguiente problema.

Tengo un objeto controlador que se encarga de dibujar la barra de vida en pantalla. También lo estoy usando de momento para dibujar el valor de variables en pantalla, a modo de debug (fps, dirección del control y otras cosillas)

Bueno, eso funciona bien, el detalle es que recien agregué otro objeto que se encarga de dibujar el menú de pausa y de despausar el juego (reactivar instancias). El metodo de pausa se hace en el objeto controlador: guardar las instancias activas en una pila, y después desactivar todas las instancias, justo en seguida, se crea el objeto pausa, al que le paso la pila con las instancias desactivadas (incluida la del objeto controlador)

La pausa funciona, pero al quitarla y regresar al juego, la barra de vida y demás cosas que dibujaba con el objeto controlador no aparecen en pantalla, PERO, si vuelvo a pausar y a despausar, las cosas de nuevo aparecen dibujadas.  Es decir, a la primera vez que despauso, no aparece nada, pero a la segunda si, esto pasa una y otra vez  ???

No tengo idea de qué está pasando. ¿Alguien sabe a qué se debe el comportamiento?

Gracias.
Título: Re:AYUDA: Las cosas no se dibujan en pantalla al salir de la pausa
Publicado por: MRafX en Julio 14, 2013, 04:38:26 AM
puede ser que al apretar la tecla de pausa se aprete doble de repente, o alguna variable mal contada que no active las instancias de nuevo, deberias probar que cuando no se vea nada en el debug usar instance_activate_all() haber si funciona....
Título: Re:AYUDA: Las cosas no se dibujan en pantalla al salir de la pausa
Publicado por: penumbra en Julio 14, 2013, 09:38:52 AM
Probé lo de hacer instance_activate_all() en el debug, sin éxito  :'(

No es que se apriete doble la pausa: Para pausar uso ENTER en el teclado y START en el control, y ocurre lo mismo con cualquier método.  Si se presionara doble, el comportamiento sería más errático, es decir, a veces sí aparecerían las cosas dibujadas a la primera, pero siempre aparecen a la segunda.

Además, tengo código que detecta si el botón está presionado, si se acaba de liberar o si sigue presionado desde el paso anterior, y para activar la pausa, reviso si se liberó, es decir, si está presionado no le afecta eso a la pausa/despausa

Lo extraño es que las instancias si se reactivan correctamente, todas, aun cuando haya cosas que no se vean. En el debug reviso si existe la instancia del objeto controlador,  y siempre está, aunque no se vea nada. El número total de instancias siempre es el mismo antes de pausar y después de quitar la pausa, se vean o no las cosas...
Título: [SOLUCIONADO]: Las cosas no se dibujan en pantalla al salir de la pausa
Publicado por: penumbra en Julio 14, 2013, 09:52:17 PM
Bueno, al final logré solucionar la falla. El detalle es que las instancias que se desactivarian se guardaban en una pila. Cuando las cosas se dibujaban bien, la lista de instancias del debugger tenía un orden distinto que cuando se dibujaban mal. Me imagino que esto afectaba la profundidad de los sprites, por lo que ciertas cosas quedaban ocultas detrás de los fondos que sí se veían

Se supone que la pila la usaba para guardar sólo las instancias activas en el room, y si se tenían instancias desactivadas al momento de la pausa, esas no se guardaban en la pila, para que al quitar la pausa, no aparecieran activas.  Quité ese códgo y usé directamente instance_activate_all (), lo que resolvió el problema

Me imagino que al guardar las instancias en una cola, pasaría algo similar, pero a la inversa. Quizás guardando las instancias en una lista no afecte el orden de reactivación.

EDICIÓN: Volví a reactivar el uso de pila, modificando el valor de la depth de los objetos, también se dibujan bien