Quiero hacer una room a modo de inventario.
Estoy teniendo mucho problemas a la hora de parar todas las instancias para que el juego quede como en pausa mientras uso el menu del inventario.
He visto varios metodos para ello:
Guardar la partida, desactivar todas las instancias con instance_deactivate_all() y para regresar, volver a cargar la partida. Lo que pasa es que de este modo, cualquier cambio que realize en el inventario se pierde, logicamente, al volver a cargar la partida.
La verdad es que voy muy perdido.
Agradezco cualquier idea o consejo. Estoy, ahora mismo, en un punto muerto. Me temo que no he estructurado bien mi proyecto y despues de 3 meses de darle casi cada dia, me estoy acojonando :-[
Hola domenec, te hice un ejemplo acerca de como realizar una pausa con inventario, puedes pausar el juego sin necesidad de guardar el juego y desde cualquier room, ya que se guarda en una variable global el nombre de la room que llama a la pausa, para ello debes usar la room persistent la de donde llamas a la room de pausa, espero que te sirva cualquier duda me dices.
Con la tecla r, puedes reiniciar la room, dentro de ese objeto te indica como quitar el persistent a la room.
Controles:
p=pausar/reanudar
Enter=Seleccionar item y reanuda el juego
S=saltar, doble salto si estas equipado con el gorro azul.
Moverse=flechas
r=reiniciar room
Poderes:
Gorro azul equipado=doble salto
Gorro verde= te hace transparente xD
Simbolo de no entrar= no te equipas nada
Lo primero es darte las gracias por tu ejemplo.
He estado intentando adaptarlo a mi proyecto pero sigo teniendo el problema de que algunas instancias, como por ejemplo la del personaje principal, se siguen ejecutando aun estando en la room de inventario/pausa. Aunque la marque cómo persistent.
Si quieres me envías lo que tienes hecho, o lo adjuntas aquí mismo y veo si puedo ayudarte con esa parte. Con respecto al ejemplo que te hice, si el personaje esta haciendo algo cuando haces pausa, al reanudar la partida el personaje continua haciendo la acción desde donde quedo. Te aclaro la otra parte, cuando estas en la pantalla de pausa, la instancia del personaje no se encuentra en la room de pausa(no debiera de estar en esa room), por lo tanto en esa room no se ejecutan los eventos del personaje, si no hasta que reanudas la partida.
Cómo bien dices, el personaje no está en la room del inventario, pero si es persistent, el personaje no se elimina a no ser que lo hagas tu voluntariamente mediante un instance_destroy o deactivate.
En mi caso, el juego es pantalla a pantalla y mi personaje lo tengo en persistent. Las rooms no son persistent.
De todas maneras, voy probando paralelamente con el tema game_save y game_load. Estoy pensando que la intención primera que tenia en mi inventario era solo para ver el mapa y los items que tenias en ese momento. Sin tener que modificar nada en concreto. Por lo que ese método me podría funcionar.
Bueno, creo que encontré la solución. Supongo que muchos ya la sabréis, pero la posteo por si a alguien le puede servir de ayuda
Para hacer la pausa he usado el game_save y el game_load, pero con eso pierdes cualquier mmodificación que puede hacer en el menú de pausa (volúmenes, botones, etc.). Pero si antes crear un ini y lo guardas con las variables que modifiques en el menú de pausa, luego solo de volver al juego, cargas ese ini y ya está.
Espero haberme explicado. Ando con el mòbil y con poco tiempo (que es peor).
:)