exemple hoverable button

This commit is contained in:
CoCo_Sol 2023-10-28 00:00:29 +02:00
parent 36e5fa6df3
commit 56a4de653d

View file

@ -7,7 +7,7 @@ from engine import *
from engine.math import Vec2 from engine.math import Vec2
from engine.plugins.animation import AnimatedSprite, AnimationPlugin from engine.plugins.animation import AnimatedSprite, AnimationPlugin
from engine.plugins.clickable import Clickable, ClickablePlugin from engine.plugins.clickable import Clickable, ClickablePlugin
from engine.plugins.hover import HoverPlugin from engine.plugins.hover import HoverPlugin, Hoverable
from engine.plugins.render import ( from engine.plugins.render import (
Order, Order,
RenderPlugin, RenderPlugin,
@ -35,24 +35,26 @@ def spawn_sprites(world: World) -> None:
""" """
Ajoute des sprites au monde. Ajoute des sprites au monde.
""" """
for i in range(100):
red = random() < 0.1 def new_button(position: Vec2, file_name: str) -> None:
entity = world.create_entity( world.create_entity(
Position(random() * Display.WIDTH, random() * Display.HEIGHT), Position(position),
Texture("directory.png") if red else Texture("error.png"), Order(0),
Order(1 if red else 0), Texture( file_name+ ".png"),
) Hoverable(entry_callback= lambda _world, entity: entity.set(
if red: Texture(file_name+ "_hover.png"),
entity.set( ),
Clickable( exit_callback= lambda _world, entity: entity.set(
lambda world, entity: entity.set( Texture( file_name+ ".png"),
AnimatedSprite( )),)
"search_directory", for i in range(3):
lambda world, entity: print("finished !"), if i == 0:
) file_name = "button_classique"
) elif i == 1:
) file_name = "button_histoire"
) else:
file_name = "button_tricheur"
new_button(Vec2(Display.WIDTH/3*i, 20),file_name)
# On ajoutant la tache # On ajoutant la tache