MOVE tick and score rendering to InfoRenderer
This commit is contained in:
@@ -19,14 +19,6 @@ class GUIRenderer:
|
|||||||
|
|
||||||
self.colour = (255, 255, 255)
|
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):
|
def _render_buttons(self):
|
||||||
self.settings_button.draw(self.screen)
|
self.settings_button.draw(self.screen)
|
||||||
self.back_button.draw(self.screen)
|
self.back_button.draw(self.screen)
|
||||||
@@ -42,7 +34,5 @@ class GUIRenderer:
|
|||||||
self.slider.draw()
|
self.slider.draw()
|
||||||
|
|
||||||
def render(self):
|
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_buttons()
|
||||||
self._render_slider()
|
self._render_slider()
|
||||||
|
|||||||
@@ -1,15 +1,18 @@
|
|||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
class InfoRenderer:
|
class InfoRenderer:
|
||||||
def __init__(self, screen, styling):
|
def __init__(self, screen, styling, match):
|
||||||
self.screen = screen
|
self.screen = screen
|
||||||
self.styling = styling
|
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
|
self.selected_player = None
|
||||||
|
|
||||||
# Private methods
|
# Private methods
|
||||||
def _draw_player_info(self):
|
def _render_player_info(self):
|
||||||
"""Draws the player info on the screen."""
|
"""Draws the player info on the screen."""
|
||||||
if self.selected_player is None:
|
if self.selected_player is None:
|
||||||
return
|
return
|
||||||
@@ -18,10 +21,20 @@ class InfoRenderer:
|
|||||||
player_info += f"Active Weapon: {self.selected_player.current_weapon}\n"
|
player_info += f"Active Weapon: {self.selected_player.current_weapon}\n"
|
||||||
player_info += f"Health: {self.selected_player.health}\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))
|
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
|
# Public methods
|
||||||
def render(self):
|
def render(self):
|
||||||
"""Renders the info on the screen."""
|
"""Renders the info on the screen."""
|
||||||
self._draw_player_info()
|
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)
|
||||||
@@ -17,6 +17,9 @@ class Game(GameState):
|
|||||||
match_image_path = f"maps/{self.match.map_name}.png"
|
match_image_path = f"maps/{self.match.map_name}.png"
|
||||||
|
|
||||||
# Screen Areas
|
# 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 = pygame.Surface((600, 600), pygame.SRCALPHA)
|
||||||
self.game_box_top_left = (350, 0)
|
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.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.player_renderer = PlayerRenderer(self.game_box, self.match, self.map_coord_controller, self.options)
|
||||||
self.gui_render = GUIRenderer(self.screen, self.match)
|
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
|
# Controllers
|
||||||
self.player_controller = PlayerController(self.player_renderer, self.match, self.game_box_top_left)
|
self.player_controller = PlayerController(self.player_renderer, self.match, self.game_box_top_left)
|
||||||
|
|||||||
Reference in New Issue
Block a user