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)
else:
- self._scene.handle_event()
- # TODO: work
+ 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