sliders #32
|
@ -89,7 +89,15 @@ class EventHandler:
|
|||
@staticmethod
|
||||
def get_slider_area_values(slider: list):
|
||||
"""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):
|
||||
|
|
|
@ -142,7 +142,7 @@ class MenuManager:
|
|||
widget.is_window_relative, widget.set_hover_state)
|
||||
elif isinstance(widget, Slider):
|
||||
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.is_window_relative,
|
||||
hover_callback=widget.set_hover_state,
|
||||
|
|
|
@ -295,22 +295,39 @@ class Renderer:
|
|||
else:
|
||||
slider_image = widget.base_image
|
||||
|
||||
rail_image = widget.rail_image
|
||||
|
||||
if widget.is_window_relative == 0:
|
||||
slider_image = transform.scale(slider_image,
|
||||
(slider_image.get_width()*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:
|
||||
slider_image = transform.scale(slider_image,
|
||||
(slider_image.get_width()*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:
|
||||
slider_image = transform.scale(slider_image,
|
||||
(slider_image.get_width()*window_size[0]/self.window_size[0],
|
||||
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,
|
||||
y - widget.rail_image.get_height() // 2))
|
||||
self.window.blit(slider_image, (x+widget.value*widget.width-slider_image.get_width()//2,
|
||||
self.window.blit(rail_image, (x+(width-rail_image.get_width()) // 2,
|
||||
y - rail_image.get_height() // 2))
|
||||
self.window.blit(slider_image, (x+widget.value*width-slider_image.get_width()//2,
|
||||
y-slider_image.get_height()//2))
|
||||
|
||||
def render_dialogs_box(self):
|
||||
|
|
|
@ -38,7 +38,7 @@ class Game(Engine):
|
|||
def setup_main_menu(self):
|
||||
"""Crée les éléments du menu principal."""
|
||||
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_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()
|
||||
|
||||
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.show("main")
|
||||
|
|
Loading…
Reference in a new issue