[Blender] Variablesglobales python BGE

MILES DE Gracias A JOAQUIN RIEZU GONZALEZ.

Buenas, las variables globales son variables que creamos en los scripts, pero al definirlas lo hacemos de tal forma qué la variable forme parte de algún módulo global (Blender, GameLogic, Rasterizer). Estas variable no desaparecen tras la ejecución del script y se puede acceder a ellas desde cualquier objeto o script e incluso desde escenas diferentes. Su utilidad es grande a la hora de pasar información entre objetos y entre escenas.

Su funcionamiento es muy similar al de las variables locales con la diferencia de que una vez finalizado el script la variable no desaparece y sigue almacenando su valor de forma qué podamos acceder a ella y modificarla desde cualquier otro script o elemento.

Para crear una variable que esté contenida dentro de un módulo o elemento tenemos que escribirlo según la forma: (Nombre_del_modulo. Nombre_de_la_variable).

Estas variables tienen una limitación de acceso y es que solamente son accesibles dentro del mismo archivo.blend. En el momento en el que cargamos un nuevo archivo.blend perderemos las variables que hubiésemos creado.

En el blend adjunto tenemos 3 scripts, uno en cada objeto.

En el objeto cubo hemos definido una variable global llamada rojo, como hemos importado la lógica en la variable llamada g, entonces definimos esta variable global como: g, rojo y le damos el valor que queremos, en este caso [1,0,0,1] que es el color rojo. En el objeto cubo hay también un sensor de teclado que pulsando la barra espaciadora añadirá la otra escena qué tenemos creada con un cono. El cono tiene otro script que usa la variable global rojo para hacerse de color rojo, definida como l, rojo ya que hemos definido el módulo de la lógica como l.

Suzanne tiene un sensor de teclado que cuando pulsamos la letra A, lanza el script que tiene también asignado, el cual usa también la variable global rojo para cambiar su color, definida en este caso como k, rojo porque hemos definido el módulo de la lógica como k. Este script hace que si es cierto que la tecla A esté pulsada Suzanne sea roja, pero si la soltamos será de color amarillo.

Ver más sobre el tema y los comentarios en el foro