no entiendo bien como usar el "globalvar", cual es su ventaja y que diferencia hay entre los distintos tipos de varables.
una variable global. la declaras en el primer room en un object el cual podrias llamar objGlobal en su event create declaras todas las variables global.
Ventajas: Puede ser llamada, modificada, usada, desde cualquier instancia, con solo colocar global.var... Otra particular ventaja, es que, el valor de la variable global. mantendra el de la ultima operacion. ejemplo declaraste una variable global. que guarda la cantidad de enemigos eliminados. Para esto en el event Destropy de cada enemigo colocas que sume 1 a la variable global. Si importar cuantos rooms pases la variable global. seguira conteniendo la ultima informacion. Asi al final del juego podrias colocar algo como
if global.eliminoEnemigos > 10 {show_message("Brillante eres el asesino supremo")}
Otro ejemplo: lives, score. Son variables global.
u.u buena explicasion sobre una variable global, pero no es lo que pedi.
En GM8 (y no se si en el GM7) existe un codigo llamado "globalvar", para asi se crear una variable de ese tipo:
{
globalvar Variable;
}
Yo suponia que me podria servir para que en un metodo X pueda tener una variable global privada, saque
esa deduccion por las variables "var" que son algo asi:
{
var i,j;
for(i=0;i<4;i+=1)
{
j=round(random(4));
draw_text(x,y+(12*i),"N° "+string(i+j));
}
}
Es por eso mi pregunta.
Según yo entendí del manual de GM 8.0, globalvar sirve para no utilizar "global." cada vez que llamas a esa variable, no se pueden crear variables globales "privadas", ya que irían en contra de su función: las variables globales fueron creadas para accederse desde cualquier ámbito.
Por ejemplo, si pones esto:
globalvar a;
ahora "a" es una variable global y no necesita "global." antes de ser llamada.
las sentencias
var y
globalvar se usan para declarar variables temporales.
Tengo claro que una variable declarada con
var es local al pedazo de código donde es declarada pero no estoy seguro de
globalvar, el manual refiere a lo que dice eze_96ram:
Cita de: eze_96ramSegún yo entendí del manual de GM 8.0, globalvar sirve para no utilizar "global." cada vez que llamas a esa variable, no se pueden crear variables globales "privadas", ya que irían en contra de su función: las variables globales fueron creadas para accederse desde cualquier ámbito.
Habría que ver si funcionan igual a las variables declaradas como
global.variable
globalvar es para declarar un variable global temporal, esta una vez que ejecutas la linea de codigos al final del step, la globalvar deja de existir, relativamente hablando, ya que como la declaras a cada rato practicamente lo que haces es resetearla. Pero no existen globalvar privadas. Yo hasta ahora no le he encontrado un uso, aunque vi una vez un ejemplo que la usaba para declarar un array o indice de array temporal, pero luego guardaba el resultado obtenido en un archivo .ini osea un documento externo. En pocas palabras no tiene mucha utilidad.
las "var" son utilies en los scripts ya que no alteran las variables de un objero. es por eso que si se puede crear una variable global que solo se utilise en un scripts determinado estaria mas que bueno
Yo las uso para cargar archivos externos, entonces guardo ese archivo en la variable y la llamo sin el global desde cualquier objeto, como si estuviera en el gmk:
scr_cargar_sprite("scr_auto")
execute_string('globalvar '+string(argument0)) //Para acceder a la variable desde cualquier objeto
variable = string(argument0)
execute_string(variable+' = sprite_add_sprite("sprite/'+string(argument0)+'.gmspr")')