¿Cómo asociar una tarea para que se realice cuando ocurra un determinado evento?


Programando con Pilas, muchas veces querremos definir tareas que se realicen cuando ocurra algo en el juego, es decir, cuando se produzca un evento determinado. Esto lo podemos hacer en dos pasos:
  1. Primero, definimos una función que se encargue de hacer la tarea que queremos que se realice cuando ocurra el evento.
  2. Y, a continuación, asociamos esa función al evento que hemos elegido.

Pongamos un ejemplo. Imaginemos que queremos que el programa termine cuando se pulse la tecla 'q'. Bien. Definamos en primer lugar la función que realice esa tarea:

def reaccionar_tecla(evento):
    if evento.codigo == pilas.simbolos.q:
        pilas.terminar()

Y, como hemos visto, lo único que queda es asociar esta función al evento de pulsar una tecla:

pilas.eventos.pulsa_tecla.conectar(reaccionar_tecla)

¡Conseguido!

Un par de observaciones interesantes sobre el código anterior, para terminar:
  • Pilas, de forma automática, pasa como argumento a la función que definas los datos del evento. En el ejemplo, para saber que la tecla pulsada es la que queremos, hemos de usarlo convenientemente.
  • En el módulo pilas.eventos tienes la lista de eventos predefinidos en Pilas. Una vez que elijas el que desees, debes usar el método conectar() para asociar tu función al evento.

¡Ten siempre a mano la documentación!