X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fengine.py;h=2642feb3481de6407b63ebb02cd58b0a3691afd2;hb=a6de62bab3beb608b3fd9f975947f4a46ec5d1c9;hp=84bf9d0efc84e167a637216b9e7572bd1d7b14ee;hpb=0f233e6d450d863f06f5acddee3bd94f53594d08;p=naja.git diff --git a/naja/engine.py b/naja/engine.py index 84bf9d0..2642feb 100644 --- a/naja/engine.py +++ b/naja/engine.py @@ -2,13 +2,15 @@ import pygame 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): - 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,19 +21,21 @@ 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: - 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): self._scene.exit() + sound.play_sound('shutdown.ogg', foreground=True) self._scene = None