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 )
Los actores tambien tienen FUNCIONES PREDEFINIDAS (lo mismo te digo, estúdialas! )
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 ) 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
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