Hook up very basic engine.
[koperkapel.git] / koperkapel / scenes / base.py
index 6bb7f5584347e7c6f39e20e509c37fe3c5789286..859f816e6359249e8dfbdc61e36f24b4699fcc44 100644 (file)
@@ -1,6 +1,35 @@
 """ Scene utilities. """
 
 
+class Engine:
+    """ A holder for game state. """
+
+    def __init__(self, app, scene):
+        self._app = app
+        self._scene = scene
+
+    def update(self, dt):
+        self._scene.update(dt)
+
+    def draw(self):
+        self._scene.draw(self._app.screen)
+
+    def on_mouse_down(self, pos, button):
+        self._scene.on_mouse_down(pos, button)
+
+    def on_mouse_up(self, pos, button):
+        self._scene.on_mouse_up(pos, button)
+
+    def on_key_down(self, key, mod, unicode):
+        self._scene.on_key_down(key, mod, unicode)
+
+    def on_key_up(self, key, mod):
+        self._scene.on_key_up(key, mod)
+
+    def on_music_end(self):
+        self._scene.on_music_end()
+
+
 class Scene:
     """ Base class for scenes. """
 
@@ -9,3 +38,18 @@ class Scene:
 
     def draw(self, screen):
         pass
+
+    def on_mouse_down(self, pos, button):
+        pass
+
+    def on_mouse_up(self, pos, button):
+        pass
+
+    def on_key_down(self, key, mod, unicode):
+        pass
+
+    def on_key_up(self, key, mod):
+        pass
+
+    def on_music_end(self):
+        pass