from pgzero.constants import keys
from .level import LevelScene
+from .base import MoveViewportEvent
from ..constants import TILE_SIZE
class ViewLevelScene(LevelScene):
""" Level scene. """
- def __init__(self, level_name):
- super(ViewLevelScene, self).__init__(level_name)
- self._pos = (0, 0)
-
- def draw(self, screen):
- super(ViewLevelScene, self).draw(screen, self._pos)
-
def on_key_down(self, key, mod, unicode):
+ offset = None
if key == keys.DOWN:
- self._pos = self._pos[0], self._pos[1] + TILE_SIZE
- return
+ offset = (0, TILE_SIZE)
elif key == keys.UP:
- self._pos = self._pos[0], self._pos[1] - TILE_SIZE
- return
+ offset = (0, -TILE_SIZE)
elif key == keys.LEFT:
- self._pos = self._pos[0] - TILE_SIZE, self._pos[1]
- return
+ offset = (-TILE_SIZE, 0)
elif key == keys.RIGHT:
- self._pos = self._pos[0] + TILE_SIZE, self._pos[1]
- return
+ offset = (TILE_SIZE, 0)
+ if offset:
+ return [MoveViewportEvent(offset)]
return super(ViewLevelScene, self).on_key_down(key, mod, unicode)