sliders #32
|
@ -7,7 +7,7 @@ from pygame.locals import RESIZABLE, SRCALPHA, FULLSCREEN
|
||||||
import src.engine.engine as engine
|
import src.engine.engine as engine
|
||||||
from src.engine.animation import Anim
|
from src.engine.animation import Anim
|
||||||
from src.engine.enums import GameState
|
from src.engine.enums import GameState
|
||||||
from src.engine.menu_manager import Label, Button
|
from src.engine.menu_manager import Label, Button, Slider
|
||||||
|
|
||||||
|
|
||||||
class Renderer:
|
class Renderer:
|
||||||
|
@ -129,9 +129,10 @@ class Renderer:
|
||||||
self.window.blit(font.SysFont("Arial", 20).render(f"Track: {self.engine.sound_manager.music_current_song}",
|
self.window.blit(font.SysFont("Arial", 20).render(f"Track: {self.engine.sound_manager.music_current_song}",
|
||||||
True, (255, 0, 0)), (0, 120))
|
True, (255, 0, 0)), (0, 120))
|
||||||
|
|
||||||
|
window_size = display.get_window_size()
|
||||||
|
|
||||||
# On rend maintenant toutes les zones de détection de la fenêtre
|
# On rend maintenant toutes les zones de détection de la fenêtre
|
||||||
for area in self.engine.event_handler.buttons_area:
|
for area in self.engine.event_handler.buttons_area:
|
||||||
window_size = display.get_window_size()
|
|
||||||
if area[2] == 0:
|
if area[2] == 0:
|
||||||
draw.rect(self.window, (255, 255, 0),
|
draw.rect(self.window, (255, 255, 0),
|
||||||
(area[0][0] * window_size[0], area[0][1] * window_size[0],
|
(area[0][0] * window_size[0], area[0][1] * window_size[0],
|
||||||
|
@ -148,6 +149,24 @@ class Renderer:
|
||||||
draw.rect(self.window, (255, 255, 0),
|
draw.rect(self.window, (255, 255, 0),
|
||||||
area[0], width=1)
|
area[0], width=1)
|
||||||
|
|
||||||
|
for area in self.engine.event_handler.sliders_area:
|
||||||
|
print(area)
|
||||||
|
if area[1] == 0:
|
||||||
|
draw.rect(self.window, (0, 255, 20),
|
||||||
|
(area[0][0] * window_size[0], area[0][1] * window_size[0],
|
||||||
|
area[0][2] * window_size[0], area[0][3] * window_size[0]), width=1)
|
||||||
|
elif area[1] == 1:
|
||||||
|
draw.rect(self.window, (0, 255, 20),
|
||||||
|
(area[0][0] * window_size[1], area[0][1] * window_size[1],
|
||||||
|
area[0][2] * window_size[1], area[0][3] * window_size[1]), width=1)
|
||||||
|
elif area[1] == 2:
|
||||||
|
draw.rect(self.window, (0, 255, 20),
|
||||||
|
(area[0][0] * window_size[0], area[0][1] * window_size[1],
|
||||||
|
area[0][2] * window_size[0], area[0][3] * window_size[1]), width=1)
|
||||||
|
else:
|
||||||
|
draw.rect(self.window, (0, 255, 20),
|
||||||
|
area[0], width=1)
|
||||||
|
|
||||||
# Rendu présent dans tous les types de jeu
|
# Rendu présent dans tous les types de jeu
|
||||||
self.render_dialogs_box()
|
self.render_dialogs_box()
|
||||||
|
|
||||||
|
@ -236,6 +255,26 @@ class Renderer:
|
||||||
self.window.blit(btn_image, (x, y))
|
self.window.blit(btn_image, (x, y))
|
||||||
|
|
||||||
self.window.blit(rendered_text, (x, y))
|
self.window.blit(rendered_text, (x, y))
|
||||||
|
elif isinstance(widget, Slider):
|
||||||
|
if widget.hovered:
|
||||||
|
btn_image = widget.hover_image
|
||||||
|
else:
|
||||||
|
btn_image = widget.base_image
|
||||||
|
|
||||||
|
if widget.is_window_relative == 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]))
|
||||||
|
elif widget.is_window_relative == 1:
|
||||||
|
btn_image = transform.scale(btn_image, (btn_image.get_width()*window_size[1]/self.window_size[1],
|
||||||
|
btn_image.get_height()*window_size[1]/self.window_size[1]))
|
||||||
|
elif widget.is_window_relative == 2:
|
||||||
|
btn_image = transform.scale(btn_image, (btn_image.get_width()*window_size[0]/self.window_size[0],
|
||||||
|
btn_image.get_height()*window_size[1]/self.window_size[1]))
|
||||||
|
|
||||||
|
# On affiche l'image du boutton
|
||||||
|
|
||||||
|
self.window.blit(btn_image, (x+widget.value*widget.width, y))
|
||||||
|
|
||||||
|
|
||||||
def render_dialogs_box(self):
|
def render_dialogs_box(self):
|
||||||
"""Rend la boite de dialogue lorsqu'un dialogue est lancé."""
|
"""Rend la boite de dialogue lorsqu'un dialogue est lancé."""
|
||||||
|
|
|
@ -4,7 +4,7 @@ from src.custom_AI import WolfAI
|
||||||
from src.engine.animation import Anim
|
from src.engine.animation import Anim
|
||||||
from src.engine.engine import Engine
|
from src.engine.engine import Engine
|
||||||
from src.engine.enums import GameState
|
from src.engine.enums import GameState
|
||||||
from src.engine.menu_manager import Menu, Label, Button
|
from src.engine.menu_manager import Menu, Label, Button, Slider
|
||||||
|
|
||||||
|
|
||||||
class Game(Engine):
|
class Game(Engine):
|
||||||
|
@ -44,8 +44,11 @@ class Game(Engine):
|
||||||
hover_image = pygame.image.load("assets/textures/GUI/button_2.png").convert_alpha()
|
hover_image = pygame.image.load("assets/textures/GUI/button_2.png").convert_alpha()
|
||||||
|
|
||||||
menu.add_widget(Button(0.5, 0.3, "play", 0.08, (0, 0, 0), self.start_game, base_image, hover_image, True, 0))
|
menu.add_widget(Button(0.5, 0.3, "play", 0.08, (0, 0, 0), self.start_game, base_image, hover_image, True, 0))
|
||||||
|
menu.add_widget(Slider(40, 200, base_image, hover_image))
|
||||||
self.menu_manager.register_menu(menu, "main")
|
self.menu_manager.register_menu(menu, "main")
|
||||||
|
|
||||||
|
self.event_handler.register_slider_area([10, 10, 50, 50])
|
||||||
|
|
||||||
self.menu_manager.show("main")
|
self.menu_manager.show("main")
|
||||||
|
|
||||||
def create_player_entity(self):
|
def create_player_entity(self):
|
||||||
|
|
Loading…
Reference in a new issue