A menu that works (but doesn't show the selection)
[naja.git] / naja / scenes / menu.py
1 """
2 Main menu scene.
3 """
4
5 import pygame.locals as pgl
6
7 from naja.scenes.scene import Scene
8 from naja.widgets.text import TextWidget
9 from naja.events import QuitGameEvent
10 from naja.scenes.credits import CreditsScene
11 from naja.scenes.game import GameScene
12 from naja.events import SceneChangeEvent
13
14
15 class MenuScene(Scene):
16
17     def __init__(self, state):
18         super(MenuScene, self).__init__(state)
19         self.widgets.append(TextWidget((10, 10), 'Game', fontsize=32,
20                             colour='white'))
21         self.widgets.append(TextWidget((10, 40), 'Credits', fontsize=32,
22                             colour='white'))
23         self.widgets.append(TextWidget((10, 70), 'Quit', fontsize=32,
24                             colour='white'))
25         self.pos = 0
26
27     def handle_event(self, ev):
28         if ev.type == pgl.KEYDOWN:
29             if ev.key in (pgl.K_q, pgl.K_ESCAPE):
30                 QuitGameEvent.post()
31                 return
32             if ev.key == pgl.K_DOWN:
33                 self.pos = (self.pos + 1) % 3
34             elif ev.key == pgl.K_UP:
35                 self.pos = (self.pos - 1) % 3
36             elif ev.key == pgl.K_RETURN:
37                 if self.pos == 2:
38                     QuitGameEvent.post()
39                     return
40                 elif self.pos == 0:
41                     scene = GameScene
42                 elif self.pos == 1:
43                     scene = CreditsScene
44                 SceneChangeEvent.post(scene)