Spanish forum > Foro técnico

Optimizar variables

(1/2) > >>

Maidnet:
Hola a todos,

Una cuestión, a ver si alguien me puede aconsejar...

En mi juego estoy utilizando muchas variables globales, ya que casi todas las acciones requieren de ellas. Llegado a un punto en el juego, la cantidad de variables es tal que por lo visto se ralentiza el salvado de partidas. Mi pregunta es si hay alguna manera de "descargar" las variables que ya no están en uso, con el fín de optimizar el script.

Gracias por adelantado!!

Jose:
Hola Maidnet,

prueba a asignar 'null' a aquellas variables globales que no vayas a usar. No se te van a "descargar" completamente de la memoria pero sólo ocuparán unos pocos bytes, y por lo tanto deberían aligerar el rendimiento de tu juego (según Mnemonic).

Un saludo.

HelLRaiseR:
Cuentanos algo mas de para que las utilizas, en que casos, etc. Puede ser que cambiando el planteamiento de la programación, puedas eliminar algunas o bastantes.

Maidnet:
Un ejemplo de los más comunes:

Tengo una conversación en la cual hay tres niveles. En cada nivel hay cuatro opciones diferentes de respuesta, de las cuales una es la que se usa para "salir" de la conversación.  Para que una vez el jugador haya seleccionado una de las respuestas del último nivel, esta no vuelva a aparecer, utilizo una variable que se activa la primera vez que se ejecuta el script de esa opción, y sirve para que al volver a ese nivel, el script se salte el poner esa opción. Luego, cuando las tres opciones ya han sido seleccionadas, le digo al script que ya no entre en esa rama.

En pocas palabras:


--- Code: ---while(Loop)
{
if(C_Alfred13!=1)Game.AddResponse(1, ProtaFrases[1]);
if(copazo==true)
{
if(C_Alfred14!=1)Game.AddResponse(3, ProtaFrases[3]);
}
if(C_Alfred15!=1)Game.AddResponse(5, ProtaFrases[5]);
if(C_Alfred16!=1 || C_Alfred19!=1 || C_Alfred20!=1 || C_Alfred21!=1 || C_Alfred17!=1 || C_Alfred18!=1)Game.AddResponse(6, ProtaFrases[6]);
Game.AddResponse(18, ProtaFrases[18]);

Selected = Game.GetResponse();
if(C_Alfred16!=1 || C_Alfred19!=1 || C_Alfred20!=1 || C_Alfred21!=1 || C_Alfred17!=1 || C_Alfred18!=1)actor.Talk(ProtaFrases[Selected]);

if(Selected==1)
{
this.Talk(AlfredFrases[3]);
this.Talk(AlfredFrases[4]);
actor.Talk(ProtaFrases[2]);
this.Talk(AlfredFrases[5]);
this.Talk(AlfredFrases[6]);
C_Alfred13 = 1;
}
if(Selected==3)
{
this.Talk(AlfredFrases[7]);
this.Talk(AlfredFrases[8]);
actor.Talk(ProtaFrases[4]);
this.Talk(AlfredFrases[9]);
this.Talk(AlfredFrases[10]);
this.Talk(AlfredFrases[11]);
this.Talk(AlfredFrases[12]);
this.Talk(AlfredFrases[13]);
C_Alfred14 = 1;
}
--- End code ---

Esto es solo parte del script. En este script en especial, hay utilizadas más de 30 variables globales.

Gracias de antemano!!

Jyujinkai:
for some reason you can not revice PMs.....


--- Quote ---Please take the time to conform to forum rules on posting code snips.

Here are the instructions here
http://forum.dead-code.org/index.php?topic=2013.0

If you would edit your post
http://forum.dead-code.org/index.php?topic=3456.msg21207#msg21207

Please try to use the bbcode in future posts

Thank you.
--- End quote ---

Navigation

[0] Message Index

[#] Next page

Go to full version