Hook up very basic engine.
[koperkapel.git] / koperkapel / scenes / base.py
1 """ Scene utilities. """
2
3
4 class Engine:
5     """ A holder for game state. """
6
7     def __init__(self, app, scene):
8         self._app = app
9         self._scene = scene
10
11     def update(self, dt):
12         self._scene.update(dt)
13
14     def draw(self):
15         self._scene.draw(self._app.screen)
16
17     def on_mouse_down(self, pos, button):
18         self._scene.on_mouse_down(pos, button)
19
20     def on_mouse_up(self, pos, button):
21         self._scene.on_mouse_up(pos, button)
22
23     def on_key_down(self, key, mod, unicode):
24         self._scene.on_key_down(key, mod, unicode)
25
26     def on_key_up(self, key, mod):
27         self._scene.on_key_up(key, mod)
28
29     def on_music_end(self):
30         self._scene.on_music_end()
31
32
33 class Scene:
34     """ Base class for scenes. """
35
36     def update(self, dt):
37         pass
38
39     def draw(self, screen):
40         pass
41
42     def on_mouse_down(self, pos, button):
43         pass
44
45     def on_mouse_up(self, pos, button):
46         pass
47
48     def on_key_down(self, key, mod, unicode):
49         pass
50
51     def on_key_up(self, key, mod):
52         pass
53
54     def on_music_end(self):
55         pass