X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fengine.py;h=84bf9d0efc84e167a637216b9e7572bd1d7b14ee;hb=9299925383d4746e7f9c4e948e083a1bff1e339a;hp=fc58f18503ddcb0b67754da71d186bf639236a1c;hpb=8298f564c4f55b062b59185ea971b4f17aa37b50;p=naja.git diff --git a/naja/engine.py b/naja/engine.py index fc58f18..84bf9d0 100644 --- a/naja/engine.py +++ b/naja/engine.py @@ -1,6 +1,9 @@ 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): @@ -8,10 +11,27 @@ 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 - self._scene.handle_event() - # TODO: work + elif SceneChangeEvent.matches(ev): + self.change_scene(ev.scene) + 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): + self._scene.exit() + self._scene = scene + self._scene.enter() + + def quit_game(self): + self._scene.exit() + self._scene = None