From e5475e6e5fb25fe865ff9ddc6746ce26cb73b392 Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Thu, 4 Jan 2024 05:22:02 +0200 Subject: [PATCH] feat(game): preview next figure images --- src/game/main.py | 2 +- src/game/preview.py | 25 ++++++++++++++++++++++--- src/utils/figure.py | 4 ++-- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/game/main.py b/src/game/main.py index 328737a..7e22320 100644 --- a/src/game/main.py +++ b/src/game/main.py @@ -34,7 +34,7 @@ class Main: self.game.run() self.score.run() - self.preview.run() + self.preview.run(self.next_figures) pygame.display.update() self.clock.tick(CONFIG.fps) diff --git a/src/game/preview.py b/src/game/preview.py index 7c05db5..5ebd0e5 100644 --- a/src/game/preview.py +++ b/src/game/preview.py @@ -1,5 +1,5 @@ import pygame -from utils import CONFIG, Size +from utils import CONFIG, Figure, Size class Preview: @@ -12,7 +12,26 @@ class Preview: ) ) self.dispaly_surface = pygame.display.get_surface() - self.surface.fill(CONFIG.colors.bg_sidebar) - def run(self) -> None: + def run(self, next_figures: list[Figure]) -> None: self.dispaly_surface.blit(self.surface, self.rect) + self.draw(next_figures) + + def draw(self, next_figures: list[Figure]) -> None: + self.surface.fill(CONFIG.colors.bg_sidebar) + self._draw_border() + self._draw_figures(next_figures) + + def _draw_border(self) -> None: + pygame.draw.rect( + self.dispaly_surface, + CONFIG.colors.border_highlight, + self.rect, + CONFIG.game.line_width * 2, + CONFIG.game.border_radius, + ) + + def _draw_figures(self, figures: list[Figure]) -> None: + for figure in figures: + figure_surface = figure.value.image + self.surface.blit(figure_surface, (0, 0)) diff --git a/src/utils/figure.py b/src/utils/figure.py index e4fefbe..5fba86b 100644 --- a/src/utils/figure.py +++ b/src/utils/figure.py @@ -94,6 +94,6 @@ class Figure(Enum): _load_image("L.png"), ) - @staticmethod - def random() -> "Figure": + @classmethod + def random(cls) -> "Figure": return random.choice(list(Figure))