diff --git a/project/main.py b/project/main.py index 3427e0c..d6348cd 100644 --- a/project/main.py +++ b/project/main.py @@ -76,6 +76,7 @@ if what_to_run == 'menu': global level_text_label for level_text_label in level_menu.level_text_labels: sprite_manager.remove_ui_element(level_text_label) + sprite_manager.remove_ui_element(level_menu.background) level_menu.level_select_listener = lambda selected_level: load_next_level(selected_level) @@ -103,6 +104,7 @@ if what_to_run == 'menu': destroy_menu() else: show_menu = True + sprite_manager.add_ui_element(DrawLayers.UI, level_menu.background) for level_text_label in level_menu.level_text_labels: sprite_manager.add_ui_element(DrawLayers.UI, level_text_label) diff --git a/project/ui_elements/Background.py b/project/ui_elements/Background.py new file mode 100644 index 0000000..17deaaf --- /dev/null +++ b/project/ui_elements/Background.py @@ -0,0 +1,31 @@ +from typing import Optional + +import pygame +from pygame import Surface + +from physics.TickData import TickData +from sprite.BoundingBox import BoundingBox +from ui_elements.UiElement import UiElement + + +class Background(UiElement): + + def __init__(self, x_pos: float, y_pos: float, width: float, height: float, color: tuple): + super().__init__() + self.x_pos = x_pos + self.y_pos = y_pos + self.width = width + self.height = height + self.color = color + + def tick(self, tick_data: TickData): + pass + + def render_sprite_image(self) -> Optional[Surface]: + surface = pygame.Surface((self.width, self.height), pygame.SRCALPHA) + background_rect = pygame.Rect(self.x_pos, self.y_pos, self.width, self.height) + pygame.draw.rect(surface, self.color, background_rect) + return surface + + def get_bounding_box(self) -> BoundingBox: + return BoundingBox(-1, -1, 0, 0) diff --git a/project/ui_elements/LevelMenu.py b/project/ui_elements/LevelMenu.py index 17c9196..b1de9f8 100644 --- a/project/ui_elements/LevelMenu.py +++ b/project/ui_elements/LevelMenu.py @@ -1,13 +1,15 @@ import pygame from level.Level import Level +from ui_elements.Background import Background from ui_elements.ClickEvent import ClickEvent from ui_elements.TextLabel import TextLabel class LevelMenu: - def __init__(self, levels: [Level], x_pos: int, y_pos: int, width: float, height: float, column_count: int): + def __init__(self, levels: [Level], x_pos: float, y_pos: float, width: float, height: float, column_count: int): + super().__init__() self.levels = levels self.x_pos = x_pos self.y_pos = y_pos @@ -18,6 +20,7 @@ class LevelMenu: self.column_count = column_count self.create_level_text_labels() + self.background = Background(self.x_pos, self.y_pos, self.width, self.height, (100, 100, 100, 180)) def create_level_text_labels(self): current_text_label_x = self.x_pos