Para pasar datos entre escenas, tenemos un procedimiento sencillo.
Para verlo, vamos a escribir, de ejemplo, un programa que cambie entre dos escenas. La primera muestra un texto "Hola" y la segunda (a la que se cambia cuando se pulsa el botón del ratón) muestra "Adiós":
Modifiquémoslo ahora para pasar un nombre desde la Escena_1 a la Escena_2. Digamos que queremos pasarle el nombre de "Pepe" para que la segunda escena diga "Adiós, Pepe".
Lo primero es muy lógico; en la linea en la que cambiamos a la Escena_2, le pasamos como parámetro el nombre de "Pepe":
pilas.cambiar_escena(Escena_2("Pepe"))
Y lo segundo es modificar la clase de la Escena_2 para que sepa recoger ese dato. Y no es complicado; consiste en que en su método init añadamos un argumento más y lo asociemos a una variable de la escena:
class Escena_2(pilas.escena.Base):
def__init__(self, nombre):
pilas.escena.Base.__init__(self)self.nombre= nombre
Finalmente, lo podemos usar como queremos, al mostrar el mensaje:
Para verlo, vamos a escribir, de ejemplo, un programa que cambie entre dos escenas. La primera muestra un texto "Hola" y la segunda (a la que se cambia cuando se pulsa el botón del ratón) muestra "Adiós":
Modifiquémoslo ahora para pasar un nombre desde la Escena_1 a la Escena_2. Digamos que queremos pasarle el nombre de "Pepe" para que la segunda escena diga "Adiós, Pepe".
Lo primero es muy lógico; en la linea en la que cambiamos a la Escena_2, le pasamos como parámetro el nombre de "Pepe":
Y lo segundo es modificar la clase de la Escena_2 para que sepa recoger ese dato. Y no es complicado; consiste en que en su método init añadamos un argumento más y lo asociemos a una variable de la escena:
Finalmente, lo podemos usar como queremos, al mostrar el mensaje:
¡Y eso es todo!
El programa completo quedaría así: