¿Cómo hacer que un actor aprenda una determinada habilidad?


En terminología de Pilas, una habilidad es un comportamiento específico de un actor. Los actores predefinidos ya tienen asignados comportamientos concretos, como el sonreír del actor Mono o la rotación del actor Torreta.
Pilas se ha construido de la forma más modular posible y, de hecho, uno de sus módulos contiene predefinidas habilidades genéricas. Se trata del módulo pilas.habilidades. Puedes curiosear en él para ver de qué estamos hablando.

Por otra parte, todo actor posee un método aprender( ) al que le podemos pasar como argumento una habilidad; a partir de ese momento, el actor dispondrá de ella. Veamos un ejemplo:

Cuando creamos un actor Mono de Pilas, no sucede nada si hacemos click sobre él y movemos el ratón. ¿Qué pasa si queremos que se pueda arrastrar con el ratón? Si te has fijado antes, en el módulo pilas.habilidades hay una llamada Arrastrable que hace precisamente eso. Dicho y hecho:

>>> import pilas
>>> pilas.iniciar()
>>> mono = pilas.actores.Mono()
>>> mono.aprender(pilas.habilidades.Arrastrable)

A partir de este momento, el mono podrá arrastrarse con el ratón. ¡Pruébalo!

¿Qué sucede si no existe predefinida la habilidad que queremos? Como puede imaginarse, tendremos que definirla nosotros mismos.