Detectar cursor encima de un actor [RESUELTO]

Hola, quiero saber como detectar si el cursor esta encima de un acotor, esto seria por ejemplo en un menu, si estas encima de una opcion, cambia de textura a una mas brillante y se agranda un poco la escala, y asi dar un efecto de marcar una opcion, y tambien que al desmarcarla vuelva a estar como antes, gracias por leer ^^

Buenas, @Pan!

OPCIÓN 1:
Pilas cuenta con muchos EVENTOS (te aconsejo que los estudies todos en el manual :slight_smile:)
Los actores tambien tienen FUNCIONES PREDEFINIDAS (lo mismo te digo, estúdialas! :slight_smile:)

Para este caso usaremos el evento “pilas.eventos.mueve_mouse” (que detecta si el mouse ha sido movido de posición) y la función “actor.colisiona con un punto(cursor_del_mouse.x, cursor_del_mouse.y)”

# coding: utf-8
import pilasengine

pilas = pilasengine.iniciar()

mono = pilas.actores.Mono()

# Algunas transformaciones:
# (Pulsá el botón derecho del
#  mouse sobre alguna de las
#  sentencias)

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

def hablar(mi_evento):
    if mono.colisiona_con_un_punto(mi_evento.x, mi_evento.y):
        mono.decir("Colisona")
        mono.escala=2
    else:
        mono.escala=1

pilas.eventos.mueve_mouse.conectar(hablar)

pilas.ejecutar() 

OPCIÓN 2:

Otra manera de hacerlo (quizás más fácil :wink: ) es creando un cursor propio:

#(OJO, estoy usando el actor CursorDisparo
#porque este actor ya sigue automaticamente al mouse,
#pero puedes usar el que tú prefieras!
mi_cursor = pilas.actores.CursorDisparo()
#opcionalmente puedes darle otra imagen:
#mi_cursor.imagen="mi_archivo.png"
def hablar(flecha, mico):
    mico.decir('hola')
pilas.colisiones.agregar(mi_cursor, mono, hablar)
1 Like

Use la primer forma, y de paso e agregado un cursor personalizado a mi juego :wink:

Me alegro!
A veces se echan de menos funciones tan simples como el “onMouseOver” de JavaScript o el “:hover” de CSS, pero aún así a todo se le puede encontrar solución :wink: