UPDATE boxing methods for rendering

This commit is contained in:
2025-04-27 15:45:30 +02:00
parent dfc0bdca43
commit 45c032bec1
7 changed files with 68 additions and 25 deletions

View File

@@ -0,0 +1,24 @@
import pygame
from widgets.slider import HorizontalSlider
class ControlRenderer:
def __init__(self, screen, match):
self.screen = screen
self.font = pygame.font.Font(None, 36)
self.match = match
self.colour = (255, 255, 255)
self.slider = HorizontalSlider(self.screen, 50, 0, self.screen.get_width()-50, 20, 1, self.match.max_tick)
def _render_slider(self):
# Update slider value
if self.slider.dragging:
# Set match tick if slider is being dragged
self.match.set_tick(int(self.slider.value))
else:
# Set slider value if slider is not being dragged
self.slider.set_value(self.match.tick)
self.slider.draw()
def render(self):
self._render_slider()

View File

@@ -1,5 +1,4 @@
import pygame
from widgets.slider import HorizontalSlider
from widgets.button import Button
class GUIRenderer:
@@ -8,8 +7,7 @@ class GUIRenderer:
self.font = pygame.font.Font(None, 36)
self.match = match
self.slider = HorizontalSlider(self.screen, 50, 650, self.screen.get_width()-100, 20, 1, self.match.max_tick)
# Buttons
self.settings_button = Button(self.screen.get_width()-40, 10, 30, 30, None)
self.settings_button.set_image("assets/setting.png")
@@ -23,16 +21,6 @@ class GUIRenderer:
self.settings_button.draw(self.screen)
self.back_button.draw(self.screen)
def _render_slider(self):
# Update slider value
if self.slider.dragging:
# Set match tick if slider is being dragged
self.match.set_tick(int(self.slider.value))
else:
# Set slider value if slider is not being dragged
self.slider.set_value(self.match.tick)
self.slider.draw()
def render(self):
self._render_buttons()
self._render_slider()

View File

@@ -17,14 +17,17 @@ class InfoRenderer:
if self.selected_player is None:
return
player_info = f"Player: {self.selected_player.name}\n"
player_info += f"Active Weapon: {self.selected_player.current_weapon}\n"
player_info_title = f"{self.selected_player.name}\n"
player_info = f"Active Weapon: {self.selected_player.current_weapon}\n"
player_info += f"Health: {self.selected_player.health}\n"
player_info += f"Armour: {self.selected_player.armour}\n"
text_surface = self.small_font.render(player_info, True, self.styling["text_colour"])
text_surface = self.font.render(player_info_title, True, self.styling["text_colour"])
self.screen.blit(text_surface, (10, 100))
text_surface = self.small_font.render(player_info, True, self.styling["text_colour"])
self.screen.blit(text_surface, (10, 150))
def _render_current_tick(self, match_tick, max_tick):
text = self.font.render(f"Tick: {match_tick}/{max_tick}", True, self.colour)
self.screen.blit(text, (10, 10))