sep-pm-platformer/project/level/selection/LevelScreenManager.py

50 lines
1.7 KiB
Python
Raw Normal View History

from abc import abstractmethod
import pygame.time
2023-03-29 13:50:48 +02:00
from level.Level import Level
from level.elements.LoadedLevel import LoadedLevel
from level.selection.ScreenManager import ScreenManager
from physics.SpriteManager import SpriteManager, DrawLayers
2023-03-29 13:50:48 +02:00
from physics.TickData import TickData
from sprite.SpritesheetManager import SpritesheetManager
2023-03-29 13:50:48 +02:00
from ui_elements.KeyManager import KeyManager
from ui_elements.TextLabel import TextLabel
class LevelScreenManager(ScreenManager):
2023-03-29 13:50:48 +02:00
def __init__(self, sprite_manager: SpriteManager, spritesheet_manager: SpritesheetManager, main_loop,
level: Level):
super().__init__(sprite_manager, spritesheet_manager, main_loop)
2023-03-29 13:50:48 +02:00
self.level = level
self.loaded_level = LoadedLevel(sprite_manager, spritesheet_manager)
self.loaded_level.level_screen_manager = self
2023-03-29 13:50:48 +02:00
self.loaded_level.load_level(self.level)
self.back_button = TextLabel('BACK [ESC]', 635, 460, font_size=30)
self.back_button.position_scale.scale = (0.5, 0.5)
self.add_element(DrawLayers.UI, self.back_button)
self.back_button.add_click_listener(lambda click: self.back_to_level_selection())
def initialize(self):
pass
def destroy(self):
super().destroy()
2023-03-29 13:50:48 +02:00
self.loaded_level.destroy_level()
def tick(self, tick_data: TickData):
if tick_data.key_manager.is_keymap_down(KeyManager.KEY_ESCAPE):
self.back_to_level_selection()
pygame.time.delay(250)
def back_to_level_selection(self):
self.main_loop.select_level_selection(self.level.theme)
def player_death(self):
self.main_loop.player_death(self.level)
2023-03-29 16:08:12 +02:00
def player_success(self):
self.main_loop.player_success(self.level)