From 56a4de653d97e5d2677a83880db85bd3c1d190ba Mon Sep 17 00:00:00 2001 From: CoCo_Sol Date: Sat, 28 Oct 2023 00:00:29 +0200 Subject: [PATCH] exemple hoverable button --- src/main.py | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/src/main.py b/src/main.py index 9230e07..d77a5cb 100644 --- a/src/main.py +++ b/src/main.py @@ -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