X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fscenes%2Flevel.py;h=70dd7be23931d70ff129952598c525c7c1bf65fd;hb=ac587543218e5179289e18a147e7118f10348dfe;hp=2484119350570d93fdfb49b37f5d0c02106876d6;hpb=81a5f79d900e83c7371c9650a4ae7400ed2e6c8c;p=koperkapel.git diff --git a/koperkapel/scenes/level.py b/koperkapel/scenes/level.py index 2484119..70dd7be 100644 --- a/koperkapel/scenes/level.py +++ b/koperkapel/scenes/level.py @@ -21,6 +21,13 @@ class BaseLevelScene(Scene): for layer in ['floor', 'tunnels']: self._surfaces[layer] = self._render(layer) self._overlay = self._surfaces['floor'].copy() + self._doors = self.actors.add_layer("doors", level=9) + self._keypads = self.actors.add_layer("keypads", level=8) + # These are already Actors + for door in self._level.doors: + self._doors.add(door) + for keypad in self._level.keypads: + self._keypads.add(keypad) def _render(self, layer): # We cache the rendered surface to avoid doing a large number @@ -38,6 +45,13 @@ class BaseLevelScene(Scene): surface.blit(tile[layer_key], pos) return surface.convert_alpha() + def update(self, world, engine, dt): + """Fix the door and keypad positions""" + for door in self._doors: + door.pos = engine.calc_offset(door.game_pos[0] * TILE_SIZE, door.game_pos[1] * TILE_SIZE) + for keypad in self._keypads: + keypad.pos = engine.calc_offset(keypad.game_pos[0] * TILE_SIZE, keypad.game_pos[1] * TILE_SIZE) + def draw(self, screen, viewport): screen.clear() # Viewport is the position of the screen relative to the @@ -78,6 +92,7 @@ class GameLevelScene(BaseLevelScene): def _set_pos(self, x, y): self._player_pos = (x, y) + print('Now at ', x, y) def _can_move(self, x, y): if self._mode == 'walk':