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.plugins.animation import AnimatedSprite, AnimationPlugin
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 (
Order,
RenderPlugin,
@ -35,24 +35,26 @@ def spawn_sprites(world: World) -> None:
"""
Ajoute des sprites au monde.
"""
for i in range(100):
red = random() < 0.1
entity = world.create_entity(
Position(random() * Display.WIDTH, random() * Display.HEIGHT),
Texture("directory.png") if red else Texture("error.png"),
Order(1 if red else 0),
)
if red:
entity.set(
Clickable(
lambda world, entity: entity.set(
AnimatedSprite(
"search_directory",
lambda world, entity: print("finished !"),
)
)
)
)
def new_button(position: Vec2, file_name: str) -> None:
world.create_entity(
Position(position),
Order(0),
Texture( file_name+ ".png"),
Hoverable(entry_callback= lambda _world, entity: entity.set(
Texture(file_name+ "_hover.png"),
),
exit_callback= lambda _world, entity: entity.set(
Texture( file_name+ ".png"),
)),)
for i in range(3):
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