exemple hoverable button
This commit is contained in:
parent
36e5fa6df3
commit
56a4de653d
40
src/main.py
40
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
|
||||
|
|
Loading…
Reference in a new issue