add background to LevelMenu

main
Mike 2023-03-28 16:59:29 +02:00
parent 0853c04844
commit 78776f5ced
3 changed files with 37 additions and 1 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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