X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fengine.py;h=a8e01460c8b345336f874f0c5fc104b7bda26289;hb=be75518bbe5076736a7a1c75d981449b5ca8d016;hp=7529efd357b6c47d0ced7970d45b12476ce59bb8;hpb=ad08d93da75b41011d609a8ecd2a7748af6737f9;p=naja.git diff --git a/naja/engine.py b/naja/engine.py index 7529efd..a8e0146 100644 --- a/naja/engine.py +++ b/naja/engine.py @@ -1,7 +1,8 @@ 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): @@ -10,9 +11,12 @@ class Engine(object): self._scene = scene 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 +24,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