Actor.conectar(def)

Buenas!

A raiz de una duda en el foro,


he estado dando vueltas a la posibilidad de “conectar” un actor a una def al ser clicado, al igual que lo están los objetos “interfaz”.

He estado investigando el código del actor, pero aunque he encontrado

actor.al_hacer_clic()
actor.clic_de_mouse()

no encuentro la manera de conectarlos.

Ya hemos visto juegos en los que se produce un comportamiento al clicar un actor (como en el ejemplo “juego-con-escenas”), pero hay que programarlo y definirlo en la escena para que se produzca.

Mi pregunta es… Se pueden usa actor.al_al_hacer_clic o actor_clic_de_mouse para conseguir que al ser clicado un actor se pudiera hacer algo parecido a

def quejarse():
    mono.decir('AY!!!')

mono.al_ser_clicado.conectar(quejarse)

Y si no es posible, creo que estaría bien implementarlo en próximas versiones de Pilas-Engine,

Un saludo :wink:

Buenas noches.

Acá viendo un poco el codigo de pilas vi que se puede hacer esto.

# coding: utf-8
import pilasengine

pilas = pilasengine.iniciar()

mono = pilas.actores.Mono()

mono.x = 0
mono.y = 0
mono.escala = 1.0
mono.rotacion = 0

def monoDecirHay():
    mono.decir("hay")

 mono.set_cuando_hace_click(monoDecirHay)

pilas.ejecutar()

en pocas palabras use el mensaje “set_cuando_hace_click”.

espero que esto sea de ayuda.

saludos.

1 me gusta

Buenas, @Miguel_Miloro !

He testado tu código y funciona perfectamente!

Esto va a ayudar, a buen seguro, a simplificar muchos juegos. :smile:

Muchas gracias por tu aporte. :wink: