X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fengine.py;h=32c139f8a56f17427b0a426bdb3b1e2fe3ec338d;hb=7ce9a5e2cbdc5a2dbdea5d000cad3e59628e9720;hp=7529efd357b6c47d0ced7970d45b12476ce59bb8;hpb=ad08d93da75b41011d609a8ecd2a7748af6737f9;p=naja.git diff --git a/naja/engine.py b/naja/engine.py index 7529efd..32c139f 100644 --- a/naja/engine.py +++ b/naja/engine.py @@ -1,18 +1,23 @@ import pygame import pygame.locals as pgl -from naja.events import SceneChangeEvent +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: + if ev.type == pgl.QUIT or QuitGameEvent.matches(ev): + self.quit_game() return elif SceneChangeEvent.matches(ev): self.change_scene(ev.scene) @@ -20,8 +25,13 @@ class Engine(object): self._scene.handle_event(ev) self._scene.render(self._surface) pygame.display.flip() + clock.tick(FPS) def change_scene(self, scene): self._scene.exit() self._scene = scene self._scene.enter() + + def quit_game(self): + self._scene.exit() + self._scene = None