Scene changing.
[naja.git] / naja / engine.py
index fc58f18503ddcb0b67754da71d186bf639236a1c..2278fa0e234de3f34aa505f7c206c267eeccbb30 100644 (file)
@@ -1,6 +1,8 @@
 import pygame
 import pygame.locals as pgl
 
+from naja.events import SceneChangeEvent
+
 
 class Engine(object):
     def __init__(self, surface, scene):
@@ -12,6 +14,14 @@ class Engine(object):
             for ev in pygame.event.get():
                 if ev.type == pgl.QUIT:
                     return
-                self._scene.handle_event()
+                elif SceneChangeEvent.matches(ev):
+                    self.change_scene(ev.scene)
+                else:
+                    self._scene.handle_event()
             # TODO: work
             pygame.display.flip()
+
+    def change_scene(self, scene):
+        self._scene.exit()
+        self._scene = scene
+        self._scene.enter()