Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Marth en Noviembre 02, 2014, 09:23:04 PM

Título: Cambiar valores iniciales de variables globales
Publicado por: Marth en Noviembre 02, 2014, 09:23:04 PM
Existen ciertas variables globales, como health, score y lives, las cuales quisiera saber si es posible modificar su valor sin tener que recurrir a objetos.
Es decir, por ejemplo, health en cada juego se inicializa a 100 y lives a -1, pues quiero saber si existe una opción en game maker para cambiar esas cifras.
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: Clamud en Noviembre 02, 2014, 10:07:56 PM
Para no usar objetos puedes escribir un "Creation code" en una room.
Para modificar los valores se hace como con cualquier variable:
[gml]
score = 0;
lives = 3;
health = 10;
[/gml]
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: kostra en Noviembre 03, 2014, 03:18:06 AM
tampoco tienes que crear un objeto extra, en cualquier objeto que por obligación tengas que poner en la primera room de tu juego, vas y la pones ahí, una sola vez? en el evento game start
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: Marth en Noviembre 03, 2014, 07:36:31 PM
Pues no ha funcionado la sugerencia de Clamud.
Se trata de modificar esas variables antes de que las manipules los objetos en si, pero resulta que primero actúan los objetos y luego la room.
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: penumbra en Noviembre 03, 2014, 08:56:02 PM
Cita de: Marth en Noviembre 03, 2014, 07:36:31 PM
pero resulta que primero actúan los objetos y luego la room.
¿Qué es lo que quieres lograr? Ese es el orden de eventos de toda la vida de GM, el mismo manual lo indica. Primero se llama al evento CREATE de los objetos, y antes de eso no ocurre otra cosa, porque lo normal es que primero se creen las variables de esa instancia y luego, en otros eventos, se puedan modificar ANTES de STEP.

No entiendo la complicación, si se trata de cambiar el valor de una variable antes de que el usuario comience a jugar, para eso se puede usar el CREATION CODE de las instancias que mencionó Clamud, o de otra forma, usar el evento GAME START o el evento ROOM START o el botón CREATION CODE en la pestaña settings del editor de rooms
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: Marth en Noviembre 03, 2014, 11:53:35 PM
Yo lo que quiero es que estas variables empiecen con un valor que sea el que quiero, en vez del valor por defecto que les da el Game Maker. Y sin recurrir a ninguna chapuza como usar un objeto al comienzo. Me refiero a que si hay en la configuración del Game Maker una opción con la que modificar esas variables.
¿Es eso posible?
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: TheSandBoxMKG en Noviembre 04, 2014, 12:22:37 AM
Cita de: Marth en Noviembre 03, 2014, 11:53:35 PM
Yo lo que quiero es que estas variables empiecen con un valor que sea el que quiero, en vez del valor por defecto que les da el Game Maker. Y sin recurrir a ninguna chapuza como usar un objeto al comienzo. Me refiero a que si hay en la configuración del Game Maker una opción con la que modificar esas variables.
¿Es eso posible?

NO
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: kostra en Noviembre 04, 2014, 08:02:21 AM
cuando yo tengo problemas de que primero actuan objetos o cualquier cosa antes que otra, que se cuando me suele salir el típico error de que la variable no existe, lo que hago es usar alarms y no checkear variables hasta después de un step, así sé seguro que ya la he creado la variable.
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: TheSandBoxMKG en Noviembre 04, 2014, 05:50:25 PM
Cita de: kostra en Noviembre 04, 2014, 08:02:21 AM
cuando yo tengo problemas de que primero actuan objetos o cualquier cosa antes que otra, que se cuando me suele salir el típico error de que la variable no existe, lo que hago es usar alarms y no checkear variables hasta después de un step, así sé seguro que ya la he creado la variable.

Yo lo que hago es esto:
if !variable_local_exists("mivariable") then mivariable=0
y para las globales:
if !variable_global_exists("mivariable") then global.mivariable=0
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: Marth en Noviembre 04, 2014, 09:58:12 PM
Cita de: TheSandBoxMKG en Noviembre 04, 2014, 12:22:37 AM
Cita de: Marth en Noviembre 03, 2014, 11:53:35 PM
Yo lo que quiero es que estas variables empiecen con un valor que sea el que quiero, en vez del valor por defecto que les da el Game Maker. Y sin recurrir a ninguna chapuza como usar un objeto al comienzo. Me refiero a que si hay en la configuración del Game Maker una opción con la que modificar esas variables.
¿Es eso posible?

NO

En fin, gracias por la ayuda de todas formas. :(
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: kostra en Noviembre 04, 2014, 10:33:35 PM
Cita de: TheSandBoxMKG en Noviembre 04, 2014, 05:50:25 PM
Cita de: kostra en Noviembre 04, 2014, 08:02:21 AM
cuando yo tengo problemas de que primero actuan objetos o cualquier cosa antes que otra, que se cuando me suele salir el típico error de que la variable no existe, lo que hago es usar alarms y no checkear variables hasta después de un step, así sé seguro que ya la he creado la variable.

Yo lo que hago es esto:
if !variable_local_exists("mivariable") then mivariable=0
y para las globales:
if !variable_global_exists("mivariable") then global.mivariable=0

esa función "variable_local_exists" me ha fallado el 99.99% de veces, para mí que está bugueado, almenos en el 8
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: TheSandBoxMKG en Noviembre 05, 2014, 10:52:26 PM
Cita de: kostra en Noviembre 04, 2014, 10:33:35 PM
Cita de: TheSandBoxMKG en Noviembre 04, 2014, 05:50:25 PM
Cita de: kostra en Noviembre 04, 2014, 08:02:21 AM
cuando yo tengo problemas de que primero actuan objetos o cualquier cosa antes que otra, que se cuando me suele salir el típico error de que la variable no existe, lo que hago es usar alarms y no checkear variables hasta después de un step, así sé seguro que ya la he creado la variable.

Yo lo que hago es esto:
if !variable_local_exists("mivariable") then mivariable=0
y para las globales:
if !variable_global_exists("mivariable") then global.mivariable=0

esa función "variable_local_exists" me ha fallado el 99.99% de veces, para mí que está bugueado, almenos en el 8

Para mi que lo usas mal, a mi me ha funcionado el 100% de las veces.
dame los ejemplos que te funcionan mal
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: kostra en Noviembre 14, 2014, 11:40:17 PM
hmmm, ahora que me doy cuenta del ejemplo que pusiste... será por las comillas? O_o se pone así siendo una variable lo que quieres ver?, comillas no son para strings? :/
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: TheSandBoxMKG en Noviembre 15, 2014, 08:37:45 PM
Cita de: kostra en Noviembre 14, 2014, 11:40:17 PM
hmmm, ahora que me doy cuenta del ejemplo que pusiste... será por las comillas? O_o se pone así siendo una variable lo que quieres ver?, comillas no son para strings? :/

es que esa función requiere el nombre de las variables en string. En el manual lo dice.
Título: Re:Cambiar valores iniciales de variables globales
Publicado por: somnus en Noviembre 16, 2014, 05:57:59 AM
como se complican,

pues usa otras variables para ti que no sean las de GM


miVida=100
miHP=1000
miOtrovalor=250;

y puedes poner estas en un objeto persistente, al inicial el room, o el juego y ya esta, GM no trae muchas cosas, las tendras que implementar tu solo