import pygame.locals as pgl
from naja.constants import FPS
-from naja.events import SceneChangeEvent, QuitGameEvent
+from naja.events import SceneChangeEvent, QuitGameEvent, LoadGameEvent
+from naja.sound import sound
class Engine(object):
self.quit_game()
return
elif SceneChangeEvent.matches(ev):
- self.change_scene(ev.scene)
+ self.change_scene(ev.scene_cls)
+ elif LoadGameEvent.matches(ev):
+ self._state = ev.state
else:
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):
self._scene.exit()
+ sound.play_sound('shutdown.ogg', foreground=True)
self._scene = None