Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: LeanGM en Diciembre 06, 2014, 10:59:27 PM

Título: ¿Como mantengo una variable a... [Solucionado]
Publicado por: LeanGM en Diciembre 06, 2014, 10:59:27 PM
Hola
Tengo un juego de un personaje, en una room está su "casa" y en otra minijuegos para ganar monedas.
Como hago para que las monedas que gané se sumen a las de la casa?
O sea, tener en las 2 rooms la misma variable..
Título: Re:¿Como mantengo una variable al cambiar de rooms?
Publicado por: penumbra en Diciembre 06, 2014, 11:13:28 PM
Una alternativa es hacer persistente el objeto para que se conserven los valores de sus variables entre habitaciones. Otra es hacer un sistema de guardado en archivos (ini, txt, binario)
Título: Re:¿Como mantengo una variable al cambiar de rooms?
Publicado por: TheSandBoxMKG en Diciembre 07, 2014, 01:04:25 AM
Cita de: penumbra en Diciembre 06, 2014, 11:13:28 PM
Una alternativa es hacer persistente el objeto para que se conserven los valores de sus variables entre habitaciones. Otra es hacer un sistema de guardado en archivos (ini, txt, binario)
y las variables globales
global.monedas=0
Título: Re:¿Como mantengo una variable al cambiar de rooms?
Publicado por: Iros en Diciembre 07, 2014, 01:37:19 AM
Las variables globales solo sirven para poder utilizar esa variable en otros objetos, que también se puede poner "nombreObjeto.puntos = 10;". La única alternativa es que el objeto donde almacenas todas las variables importantes sea persistente como dice penumbra, en la room principal inicia el objeto y ya te olvidás de todos los problemas.
Título: Re:¿Como mantengo una variable al cambiar de rooms?
Publicado por: TheSandBoxMKG en Diciembre 07, 2014, 01:45:01 AM
Cita de: Iros en Diciembre 07, 2014, 01:37:19 AM
Las variables globales solo sirven para poder utilizar esa variable en otros objetos, que también se puede poner "nombreObjeto.puntos = 10;". La única alternativa es que el objeto donde almacenas todas las variables importantes sea persistente como dice penumbra, en la room principal inicia el objeto y ya te olvidás de todos los problemas.

Seguro que el tema de las variables globales cambió en Studio, porque en GM8, las variables globales perduraban, aun con el cambio de room.
Título: Re:¿Como mantengo una variable al cambiar de rooms?
Publicado por: Iros en Diciembre 07, 2014, 03:47:48 AM
Yo vengo usando GM desde :GM5: y nunca perduraron, se destruían al cambiar de room porque no tenían el objeto que las inicializara.
Título: Re:¿Como mantengo una variable al cambiar de rooms?
Publicado por: Clamud en Diciembre 07, 2014, 05:36:48 AM
Las variables globales si se conservan al cambiar de room, hice pruebas en GM81 y GMS.
Título: Re:¿Como mantengo una variable al cambiar de rooms?
Publicado por: penumbra en Diciembre 07, 2014, 07:06:18 AM
CitarA basic description of a global variable is one that, once declared, belongs to no instance in particular and yet can be accessed by all. Just like local variables, global variables must be declared, but unlike a local variable, a global variable remains in memory until the end of the game. So, you can create a global variable to keep track of (for example) the number of bullets that the player has and then just update this variable at different points in the game. A global variable does not belong to any specific instance and can be accessed, changed and used by all instances at any time, but any change made to the variable are "global", in that all instances using the variable will be affected by the change. Let's have a look at an example:
Las globales no pertenecen a ninguna instancia en específico y permanecen en memoria hasta que se cierra el juego.
Título: Re:¿Como mantengo una variable al cambiar de rooms?
Publicado por: TheSandBoxMKG en Diciembre 08, 2014, 06:02:47 AM
Aunque si un problema: Siempre que cambias las rooms, el evento create y el evento room start son ejecutados, la razón por la cual son "destruidas" las variables si uno tenia el iniciar la variable en esos eventos
Título: Re:¿Como mantengo una variable al cambiar de rooms?
Publicado por: empardopo en Diciembre 09, 2014, 09:37:40 AM
Entiendo que si una variable global no "perdurase" desde el inicio del programa/juego hasta que se finalize deberían cambiar de nombre, no?
Precisamente por definición una variable global es accesible desde cualquier parte del programa y no tendría sentido que no fuese así y que se reseteara por el hecho de cambiar de room.

Saludos
Título: Re:¿Como mantengo una variable al cambiar de rooms?
Publicado por: TheSandBoxMKG en Diciembre 09, 2014, 05:03:50 PM
Cita de: empardopo en Diciembre 09, 2014, 09:37:40 AM
Entiendo que si una variable global no "perdurase" desde el inicio del programa/juego hasta que se finalize deberían cambiar de nombre, no?
Precisamente por definición una variable global es accesible desde cualquier parte del programa y no tendría sentido que no fuese así y que se reseteara por el hecho de cambiar de room.

Saludos

El problema es que hay un objeto que siempre lo resetea. Si la variable global se "destruye", hay que revisar todos los objetos para ver cual es el que destruye esa variable.
Título: Re:¿Como mantengo una variable a... [Solucionado]
Publicado por: LeanGM en Diciembre 10, 2014, 06:25:19 PM
Gracias a todos! Perdonen si causé alguna molestia  :-[