no entiendo bien como usar el "globalvar", cual es su ventaja y que diferencia hay entre los distintos tipos de varables.

#1 Julio 12, 2012, 01:09:57 AM Ultima modificación: Julio 12, 2012, 01:14:17 AM por elviskelley
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
Cita de: Fenris78Si un tema os resulta de interes y veis que hay poca información, la mejor solucion no es quejarse o pedir sin pensar, sino sugerir algo bien planteado o aportarlo vosotros mismos.
Cita de: CalioSomos desarrolladores independientes y, por lo tanto, no tenemos por qué guiarnos por las tendencias del mercado.

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")')
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy