Make scenes take the game state.
[naja.git] / naja / engine.py
index 84bf9d0efc84e167a637216b9e7572bd1d7b14ee..cbe27ce0b9ffe7d56da3bc9814b111815a46d84b 100644 (file)
@@ -6,9 +6,10 @@ from naja.events import SceneChangeEvent, QuitGameEvent
 
 
 class Engine(object):
-    def __init__(self, surface, scene):
+    def __init__(self, surface, scene, state):
         self._surface = surface
         self._scene = scene
+        self._state = state
 
     def run(self):
         clock = pygame.time.Clock()
@@ -19,17 +20,16 @@ class Engine(object):
                     self.quit_game()
                     return
                 elif SceneChangeEvent.matches(ev):
-                    self.change_scene(ev.scene)
+                    self.change_scene(ev.scene_cls)
                 else:
-                    print(ev.type)
                     self._scene.handle_event(ev)
             self._scene.render(self._surface)
             pygame.display.flip()
             clock.tick(FPS)
 
-    def change_scene(self, scene):
+    def change_scene(self, scene_cls):
         self._scene.exit()
-        self._scene = scene
+        self._scene = scene_cls(self._state)
         self._scene.enter()
 
     def quit_game(self):