Como accedo a una variable de otro objeto?

Quiero acceder a una variable creada en el script de otro actor, pero no se como hacerlo, es posible? Y es posible acceder a las “cosas” de otro actor por ejemplo, (su rotacion, su posicion en la eje x, y, etc) en el script de un distinto actor?

Hola @Tomy, ¡sí es posible!.

Te comento cómo se puede hacer, por un lado, cada actor tiene su propio
nombre, así que desde cualquier script vas a poder “obtener una referencia”
a otro actor usando el nombre, y una vez que tengas la referencia, vas a poder
llamar funciones o cambiarle atributos.

Por ejemplo, imaginá que en el juego hay un actor llamado “pelota” y desde otro
script queres que “salte”. Lo que podrías hacer es ejecutar este código:

let pelota = this.pilas.obtener_actor_por_nombre("pelota");
pelota.impulsar(0, 10);

La primer linea crea una variable llamada pelota y le asigna una referencia al
actor que se llama pelota. Y la siguiente linea hace que pueda saltar.

Luego, para cambiar una variable es muy parecido a lo anterior, una vez
que tenes la variable al actor podes cambiar los atributos así:

pelota.x += 15;

o:

pelota.rotacion = 45;

o lo que quieras.

De hecho, armé un ejemplo mostrando estos dos ejemplos, el ejemplo es
super sencillo, hay tres botones para controlar la pelota cambiando atributos
y llamando métodos:

botones3

El link del ejemplo para que lo veas en funcionamiento está acá:

https://app.pilas-engine.com.ar/#/proyecto/17b76ded-29ed-4140-9a2d-e9ff7bc37832

Voy a agregarlo a los ejemplos del editor en breve.

Ah, otra cosa, pilas también tiene un sistema de mensajes que te puede servir
para comunicar un actor con otro. Es un poquito más complejo, pero si le agarras
práctica se pueden hacer un montón de cosas. Te paso el link a la documentación
de mensajes:

Avisanos cualquier cosa.

¡Abrazo!

1 Like

Muchas gracias de vuelta! :slight_smile: