From 9b76b6e65a1d9fc311194269804dcbc81dd4a943 Mon Sep 17 00:00:00 2001 From: ThisBirchWood Date: Sat, 26 Apr 2025 20:24:57 +0200 Subject: [PATCH] MOVE tick and score rendering to InfoRenderer --- render/gui_renderer.py | 10 ---------- render/info_renderer.py | 23 ++++++++++++++++++----- states/game.py | 5 ++++- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/render/gui_renderer.py b/render/gui_renderer.py index 51e0f32..065dcfe 100644 --- a/render/gui_renderer.py +++ b/render/gui_renderer.py @@ -19,14 +19,6 @@ class GUIRenderer: self.colour = (255, 255, 255) - 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)) - - def _render_team_scores(self, team_1_score, team_2_score): - text = self.font.render(f"Score: {team_1_score} - {team_2_score}", True, self.colour) - self.screen.blit(text, (10, 40)) - def _render_buttons(self): self.settings_button.draw(self.screen) self.back_button.draw(self.screen) @@ -42,7 +34,5 @@ class GUIRenderer: self.slider.draw() def render(self): - self._render_current_tick(self.match.tick, self.match.max_tick) - self._render_team_scores(self.match.team_1.score, self.match.team_2.score) self._render_buttons() self._render_slider() diff --git a/render/info_renderer.py b/render/info_renderer.py index a3ee691..22e0dac 100644 --- a/render/info_renderer.py +++ b/render/info_renderer.py @@ -1,15 +1,18 @@ import pygame class InfoRenderer: - def __init__(self, screen, styling): + def __init__(self, screen, styling, match): self.screen = screen self.styling = styling - self.font = self.styling["small_font"] + self.match = match + self.colour = self.styling["text_colour"] + self.font = self.styling["font"] + self.small_font = self.styling["small_font"] self.selected_player = None # Private methods - def _draw_player_info(self): + def _render_player_info(self): """Draws the player info on the screen.""" if self.selected_player is None: return @@ -18,10 +21,20 @@ class InfoRenderer: player_info += f"Active Weapon: {self.selected_player.current_weapon}\n" player_info += f"Health: {self.selected_player.health}\n" - text_surface = self.font.render(player_info, True, self.styling["text_colour"]) + text_surface = self.small_font.render(player_info, True, self.styling["text_colour"]) self.screen.blit(text_surface, (10, 100)) + 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)) + + def _render_team_scores(self, team_1_score, team_2_score): + text = self.font.render(f"Score: {team_1_score} - {team_2_score}", True, self.colour) + self.screen.blit(text, (10, 40)) + # Public methods def render(self): """Renders the info on the screen.""" - self._draw_player_info() \ No newline at end of file + self._render_player_info() + self._render_current_tick(self.match.tick, self.match.max_tick) + self._render_team_scores(self.match.team_1.score, self.match.team_2.score) \ No newline at end of file diff --git a/states/game.py b/states/game.py index 36425fd..87e62e9 100644 --- a/states/game.py +++ b/states/game.py @@ -17,6 +17,9 @@ class Game(GameState): match_image_path = f"maps/{self.match.map_name}.png" # Screen Areas + self.gui_box = pygame.Surface((350, self.screen.get_height()), pygame.SRCALPHA) + self.gui_box_top_left = (0, 0) + self.game_box = pygame.Surface((600, 600), pygame.SRCALPHA) self.game_box_top_left = (350, 0) @@ -27,7 +30,7 @@ class Game(GameState): self.map_renderer = MapRenderer(self.game_box, match_data_path, match_image_path) self.player_renderer = PlayerRenderer(self.game_box, self.match, self.map_coord_controller, self.options) self.gui_render = GUIRenderer(self.screen, self.match) - self.info_render = InfoRenderer(self.screen, self.styling) + self.info_render = InfoRenderer(self.screen, self.styling, self.match) # Controllers self.player_controller = PlayerController(self.player_renderer, self.match, self.game_box_top_left)