a58c51d450ee3d8b04200e138b0687f3fef60f30
[koperkapel.git] / koperkapel / scenes / level.py
1 """Render a level"""
2
3 from pgzero.constants import keys
4 from ..loaders.levelloader import levels
5 from .base import Scene, ChangeSceneEvent
6 from .constants import TILE_SIZE
7
8
9 class LevelScene(Scene):
10     """ Level scene. """
11
12     def __init__(self, level_name):
13         self._level_data = levels.load(level_name)
14         self._tiles = self._level_data['tiles']
15
16     def draw(self, screen):
17         screen.clear()
18         for tile in self._tiles:
19             pos = tile['pos']
20             pos = [pos[0] * TILE_SIZE, pos[1] * TILE_SIZE]
21             if 'image' not in tile:
22                 # Skip broken tiles for now
23                 continue
24             screen.blit(tile['image'], pos)
25
26     def on_key_down(self, key, mod, unicode):
27         if key == keys.ESCAPE:
28             from .menu import MenuScene
29             return [ChangeSceneEvent(MenuScene())]