Ajout du hover du bouton
This commit is contained in:
parent
21aa1c9768
commit
82f8b692fb
|
@ -76,8 +76,15 @@ class EventHandler:
|
||||||
area[1]()
|
area[1]()
|
||||||
elif e.type == MOUSEMOTION:
|
elif e.type == MOUSEMOTION:
|
||||||
for area in self.buttons_area:
|
for area in self.buttons_area:
|
||||||
if area[4] is not None and self.get_click_collision(area[0], e.pos, area[2]):
|
if area[4] is not None:
|
||||||
area[4]()
|
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 self.engine.entity_manager.player_entity_name:
|
||||||
if K_RIGHT in self.key_pressed:
|
if K_RIGHT in self.key_pressed:
|
||||||
|
|
|
@ -42,6 +42,7 @@ class Button(Widget):
|
||||||
self.hovered = False
|
self.hovered = False
|
||||||
|
|
||||||
def set_hover_state(self, state: bool):
|
def set_hover_state(self, state: bool):
|
||||||
|
"""Modifie la valeur du hover."""
|
||||||
self.hovered = state
|
self.hovered = state
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,8 +79,7 @@ class MenuManager:
|
||||||
area_x -= width/2
|
area_x -= width/2
|
||||||
area_y -= height/2
|
area_y -= height/2
|
||||||
self.engine.event_handler.register_button_area((area_x, area_y, width, height), btn.callback, btn.area_name,
|
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"))
|
btn.is_window_relative, btn.set_hover_state)
|
||||||
print(btn.is_window_relative)
|
|
||||||
|
|
||||||
def show(self, name: str):
|
def show(self, name: str):
|
||||||
"""Affiche le menu au nom donné."""
|
"""Affiche le menu au nom donné."""
|
||||||
|
|
|
@ -205,7 +205,10 @@ class Renderer:
|
||||||
|
|
||||||
rendered_text = text_font.render(widget.text, True, widget.color)
|
rendered_text = text_font.render(widget.text, True, widget.color)
|
||||||
|
|
||||||
btn_image = widget.base_image
|
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 = 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]))
|
btn_image.get_height()*window_size[0]/self.window_size[0]))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue