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

41 lines
1.3 KiB
Python

from abc import abstractmethod
import pygame.time
from level.Level import Level
from level.elements.LoadedLevel import LoadedLevel
from level.selection.ScreenManager import ScreenManager
from physics.SpriteManager import SpriteManager
from physics.TickData import TickData
from sprite.SpritesheetManager import SpritesheetManager
from ui_elements.KeyManager import KeyManager
class LevelScreenManager(ScreenManager):
def __init__(self, sprite_manager: SpriteManager, spritesheet_manager: SpritesheetManager, main_loop,
level: Level):
super().__init__(sprite_manager, spritesheet_manager, main_loop)
self.level = level
self.loaded_level = LoadedLevel(sprite_manager, spritesheet_manager)
self.loaded_level.level_screen_manager = self
self.loaded_level.load_level(self.level)
def initialize(self):
pass
def destroy(self):
super().destroy()
self.loaded_level.destroy_level()
def tick(self, tick_data: TickData):
if tick_data.key_manager.is_keymap_down(KeyManager.KEY_ESCAPE):
self.main_loop.select_level_selection(self.level.theme)
pygame.time.delay(200)
def player_death(self):
self.main_loop.player_death(self.level)
def player_success(self):
self.main_loop.player_success(self.level)