X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fscenes%2Flevel.py;h=71373c06a08a80c86f1d9368074d94ba53f9a6f9;hb=bc78ad7ce0a69ad00b10cf29a86d7596c1f90139;hp=c29ffc0c94de4f6343c083af9c3511afc10b69d5;hpb=590f15d78138250a04cc777d645c2ca632b8984a;p=koperkapel.git diff --git a/koperkapel/scenes/level.py b/koperkapel/scenes/level.py index c29ffc0..71373c0 100644 --- a/koperkapel/scenes/level.py +++ b/koperkapel/scenes/level.py @@ -1,21 +1,30 @@ """Render a level""" -import json - from pgzero.constants import keys +from ..loaders.levelloader import levels from .base import Scene, ChangeSceneEvent +from ..constants import TILE_SIZE, WIDTH, HEIGHT class LevelScene(Scene): """ Level scene. """ - def __init__(self, level_name): - self._level_name = level_name + self._level_data = levels.load(level_name) + self._tiles = self._level_data['tiles'] - def draw(self, screen): + def draw(self, screen, viewport=(0, 0)): screen.clear() - screen.draw.text("This is level {}".format(self._level_name), (200, 100)) + for y, row in enumerate(self._tiles): + for x, tile in enumerate(row): + pos = (x * TILE_SIZE - viewport[0], + y * TILE_SIZE - viewport[1]) + if 'image' not in tile: + # Skip broken tiles for now + continue + if 0 <= pos[0] < WIDTH: + if 0 <= pos[1] < HEIGHT: + screen.blit(tile['image'], pos) def on_key_down(self, key, mod, unicode): if key == keys.ESCAPE: