sliders #32
|
@ -89,7 +89,15 @@ class EventHandler:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_slider_area_values(slider: list):
|
def get_slider_area_values(slider: list):
|
||||||
"""Donne la valeur de la zone de slider donnée."""
|
"""Donne la valeur de la zone de slider donnée."""
|
||||||
return round((slider[0][0]-slider[5][0])/slider[5][2], 5), round((slider[0][1]-slider[5][1])/slider[5][3], 5)
|
if slider[5][2]:
|
||||||
|
x_value = round((slider[0][0]-slider[5][0])/slider[5][2], 5)
|
||||||
|
else:
|
||||||
|
x_value = -1
|
||||||
|
if slider[5][3]:
|
||||||
|
y_value = round((slider[0][1]-slider[5][1])/slider[5][3], 5)
|
||||||
|
else:
|
||||||
|
y_value = -1
|
||||||
|
return x_value, y_value
|
||||||
|
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
|
|
|
@ -142,7 +142,7 @@ class MenuManager:
|
||||||
widget.is_window_relative, widget.set_hover_state)
|
widget.is_window_relative, widget.set_hover_state)
|
||||||
elif isinstance(widget, Slider):
|
elif isinstance(widget, Slider):
|
||||||
self.engine.event_handler.register_slider_area(widget.cursor_size,
|
self.engine.event_handler.register_slider_area(widget.cursor_size,
|
||||||
(widget.x, widget.y, widget.width, 1), (True, False),
|
(widget.x, widget.y, widget.width, 0), (True, False),
|
||||||
widget.area_name,
|
widget.area_name,
|
||||||
widget.is_window_relative,
|
widget.is_window_relative,
|
||||||
hover_callback=widget.set_hover_state,
|
hover_callback=widget.set_hover_state,
|
||||||
|
|
|
@ -295,22 +295,39 @@ class Renderer:
|
||||||
else:
|
else:
|
||||||
slider_image = widget.base_image
|
slider_image = widget.base_image
|
||||||
|
|
||||||
|
rail_image = widget.rail_image
|
||||||
|
|
||||||
if widget.is_window_relative == 0:
|
if widget.is_window_relative == 0:
|
||||||
slider_image = transform.scale(slider_image,
|
slider_image = transform.scale(slider_image,
|
||||||
(slider_image.get_width()*window_size[0]/self.window_size[0],
|
(slider_image.get_width()*window_size[0]/self.window_size[0],
|
||||||
slider_image.get_height()*window_size[0]/self.window_size[0]))
|
slider_image.get_height()*window_size[0]/self.window_size[0]))
|
||||||
|
rail_image = transform.scale(rail_image,
|
||||||
|
(rail_image.get_width() * window_size[0] / self.window_size[0],
|
||||||
|
rail_image.get_height() * window_size[0] / self.window_size[
|
||||||
|
0]))
|
||||||
|
width = widget.width*window_size[0]
|
||||||
elif widget.is_window_relative == 1:
|
elif widget.is_window_relative == 1:
|
||||||
slider_image = transform.scale(slider_image,
|
slider_image = transform.scale(slider_image,
|
||||||
(slider_image.get_width()*window_size[1]/self.window_size[1],
|
(slider_image.get_width()*window_size[1]/self.window_size[1],
|
||||||
slider_image.get_height()*window_size[1]/self.window_size[1]))
|
slider_image.get_height()*window_size[1]/self.window_size[1]))
|
||||||
|
rail_image = transform.scale(rail_image,
|
||||||
|
(rail_image.get_width() * window_size[1] / self.window_size[1],
|
||||||
|
rail_image.get_height() * window_size[1] / self.window_size[
|
||||||
|
1]))
|
||||||
|
width = widget.width * window_size[1]
|
||||||
elif widget.is_window_relative == 2:
|
elif widget.is_window_relative == 2:
|
||||||
slider_image = transform.scale(slider_image,
|
slider_image = transform.scale(slider_image,
|
||||||
(slider_image.get_width()*window_size[0]/self.window_size[0],
|
(slider_image.get_width()*window_size[0]/self.window_size[0],
|
||||||
slider_image.get_height()*window_size[1]/self.window_size[1]))
|
slider_image.get_height()*window_size[1]/self.window_size[1]))
|
||||||
|
rail_image = transform.scale(rail_image,
|
||||||
|
(rail_image.get_width() * window_size[0] / self.window_size[0],
|
||||||
|
rail_image.get_height() * window_size[1] / self.window_size[
|
||||||
|
1]))
|
||||||
|
width = widget.width * min(window_size[0], window_size[1])
|
||||||
|
|
||||||
self.window.blit(widget.rail_image, (x+(widget.width-widget.rail_image.get_width()) // 2,
|
self.window.blit(rail_image, (x+(width-rail_image.get_width()) // 2,
|
||||||
y - widget.rail_image.get_height() // 2))
|
y - rail_image.get_height() // 2))
|
||||||
self.window.blit(slider_image, (x+widget.value*widget.width-slider_image.get_width()//2,
|
self.window.blit(slider_image, (x+widget.value*width-slider_image.get_width()//2,
|
||||||
y-slider_image.get_height()//2))
|
y-slider_image.get_height()//2))
|
||||||
|
|
||||||
def render_dialogs_box(self):
|
def render_dialogs_box(self):
|
||||||
|
|
|
@ -38,7 +38,7 @@ class Game(Engine):
|
||||||
def setup_main_menu(self):
|
def setup_main_menu(self):
|
||||||
"""Crée les éléments du menu principal."""
|
"""Crée les éléments du menu principal."""
|
||||||
menu = Menu()
|
menu = Menu()
|
||||||
menu.add_widget(Label(0.5, 0.1, "The Forest's Secret", 0.1, (0, 0, 0), True, 0))
|
menu.add_widget(Label(0.5, 0.1, "The Forest's Secret", 0.1, (0, 0, 0), "game_title", True, 0))
|
||||||
|
|
||||||
btn_base_image = pygame.image.load("assets/textures/GUI/button_1.png").convert_alpha()
|
btn_base_image = pygame.image.load("assets/textures/GUI/button_1.png").convert_alpha()
|
||||||
btn_hover_image = pygame.image.load("assets/textures/GUI/button_2.png").convert_alpha()
|
btn_hover_image = pygame.image.load("assets/textures/GUI/button_2.png").convert_alpha()
|
||||||
|
@ -48,7 +48,7 @@ class Game(Engine):
|
||||||
slider_rail_image = pygame.image.load("assets/textures/GUI/slider_rail_1.png").convert_alpha()
|
slider_rail_image = pygame.image.load("assets/textures/GUI/slider_rail_1.png").convert_alpha()
|
||||||
|
|
||||||
menu.add_widget(Button(0.5, 0.3, "play", 0.08, (0, 0, 0), self.start_game, btn_base_image, btn_hover_image, "play_button", True, 0))
|
menu.add_widget(Button(0.5, 0.3, "play", 0.08, (0, 0, 0), self.start_game, btn_base_image, btn_hover_image, "play_button", True, 0))
|
||||||
menu.add_widget(Slider((50, 50), (100, 300), 136, slider_base_image, slider_hover_image, slider_rail_image, "test_slider", value_changed_callback=print))
|
menu.add_widget(Slider((0.1, 0.1), (0.2, 0.2), 0.2255, slider_base_image, slider_hover_image, slider_rail_image, "test_slider", value_changed_callback=print, is_window_relative=0))
|
||||||
self.menu_manager.register_menu(menu, "main")
|
self.menu_manager.register_menu(menu, "main")
|
||||||
|
|
||||||
self.menu_manager.show("main")
|
self.menu_manager.show("main")
|
||||||
|
|
Loading…
Reference in a new issue