Ajout du hover du bouton

This commit is contained in:
Yannis 2024-01-07 18:11:28 +01:00
parent 21aa1c9768
commit 82f8b692fb
Signed by: yannis
SSH key fingerprint: SHA256:Bz8K8QiTYUudf8MlthTM9MCLfgiYf/U1md3V9g9Wo14
3 changed files with 15 additions and 5 deletions

View file

@ -76,8 +76,15 @@ class EventHandler:
area[1]()
elif e.type == MOUSEMOTION:
for area in self.buttons_area:
if area[4] is not None and self.get_click_collision(area[0], e.pos, area[2]):
area[4]()
if area[4] is not None:
if self.get_click_collision(area[0], e.pos, area[2]):
if area not in self.hovered_area:
area[4](True)
self.hovered_area.append(area)
else:
if area in self.hovered_area:
area[4](False)
self.hovered_area.remove(area)
if self.engine.entity_manager.player_entity_name:
if K_RIGHT in self.key_pressed:

View file

@ -42,6 +42,7 @@ class Button(Widget):
self.hovered = False
def set_hover_state(self, state: bool):
"""Modifie la valeur du hover."""
self.hovered = state
@ -78,8 +79,7 @@ class MenuManager:
area_x -= width/2
area_y -= height/2
self.engine.event_handler.register_button_area((area_x, area_y, width, height), btn.callback, btn.area_name,
btn.is_window_relative, lambda: print("hover"))
print(btn.is_window_relative)
btn.is_window_relative, btn.set_hover_state)
def show(self, name: str):
"""Affiche le menu au nom donné."""

View file

@ -205,7 +205,10 @@ class Renderer:
rendered_text = text_font.render(widget.text, True, widget.color)
if widget.hovered:
btn_image = widget.base_image
else:
btn_image = widget.hover_image
btn_image = transform.scale(btn_image, (btn_image.get_width()*window_size[0]/self.window_size[0],
btn_image.get_height()*window_size[0]/self.window_size[0]))