X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fengine.py;h=cbe27ce0b9ffe7d56da3bc9814b111815a46d84b;hb=0cef06f581d48315a59a19ac06ca1d2be14cbb4c;hp=94ddeab24a055e9134e1c51e7fef68f2a877dd58;hpb=1c288309623b4f09c2a629c877fa9f3de106dd5b;p=naja.git diff --git a/naja/engine.py b/naja/engine.py index 94ddeab..cbe27ce 100644 --- a/naja/engine.py +++ b/naja/engine.py @@ -1,30 +1,35 @@ import pygame import pygame.locals as pgl +from naja.constants import FPS 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() while True: + self._surface.fill((0, 0, 0)) for ev in pygame.event.get(): if ev.type == pgl.QUIT or QuitGameEvent.matches(ev): self.quit_game() return elif SceneChangeEvent.matches(ev): - self.change_scene(ev.scene) + self.change_scene(ev.scene_cls) 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):