Move viewport from Engine to Scene.
[koperkapel.git] / koperkapel / scenes / base.py
index ade4d8bfddede638919ab9eb884423d38a9e55c6..26ee7819007dd06b132525175cb9fd2c84627193 100644 (file)
@@ -20,7 +20,6 @@ class Engine:
         self._app = app
         self._scene = scene
         self._world = world
-        self._viewport = (0, 0)
 
     def _apply_events(self, events):
         if not events:
@@ -41,19 +40,14 @@ class Engine:
         exit()
 
     def move_screen(self, offset):
-        self._viewport = (self._viewport[0] + offset[0],
-                          self._viewport[1] + offset[1])
-
-    def calc_offset(self, x, y):
-        """Return a position offset by the viewport"""
-        return x - self._viewport[0], y - self._viewport[1]
+        self._scene.move_screen(offset)
 
     @apply_events
     def update(self, dt):
         return self._scene.update(self._world.proxy(), self, dt)
 
     def draw(self):
-        self._scene.draw(self._app.screen, self._viewport)
+        self._scene.draw(self._app.screen)
 
     @apply_events
     def on_mouse_down(self, pos, button):
@@ -179,6 +173,15 @@ class Scene:
 
     def __init__(self):
         self.actors = Actors()
+        self.viewport = (0, 0)
+
+    def move_screen(self, offset):
+        self.viewport = (self.viewport[0] + offset[0],
+                         self.viewport[1] + offset[1])
+
+    def calc_offset(self, x, y):
+        """ Return a position offset by the viewport. """
+        return x - self.viewport[0], y - self.viewport[1]
 
     def enter(self, world):
         pass
@@ -189,7 +192,7 @@ class Scene:
     def update(self, world, engine, dt):
         pass
 
-    def draw(self, screen, viewport):
+    def draw(self, screen):
         screen.clear()
         self.actors.draw(screen)