- self.widgets.append(TextWidget((10, 10), 'Game', fontsize=32,
- colour='white'))
- self.widgets.append(TextWidget((10, 40), 'Credits', fontsize=32,
- colour='white'))
- self.widgets.append(TextWidget((10, 70), 'Quit', fontsize=32,
- colour='white'))
-
- def handle_event(self, ev):
- if ev.type == pgl.KEYDOWN and ev.key in (pgl.K_q, pgl.K_ESCAPE):
- QuitGameEvent.post()
- return
- if ev.type == pgl.KEYDOWN and ev.key is pgl.K_RETURN:
- SceneChangeEvent.post(CreditsScene)
- return
+ selector = SelectorWidget()
+ self.add(selector)
+
+ run_game = TextWidget((100, 100), 'Game', fontsize=32, colour='white')
+ run_game.add_callback(
+ 'click', lambda event: SceneChangeEvent.post(GameScene))
+ selector.add(run_game)
+
+ credits = TextWidget(
+ (100, 150), 'Credits', fontsize=32, colour='white')
+ credits.add_callback(
+ 'click', lambda event: SceneChangeEvent.post(CreditsScene))
+ selector.add(credits)
+
+ save = TextWidget((100, 250), 'Save', fontsize=32, colour='white')
+ save.add_callback(
+ 'click', lambda event: SceneChangeEvent.post(SaveGameScene))
+ selector.add(save)
+
+ quit = TextWidget((100, 300), 'Quit', fontsize=32, colour='white')
+ quit.add_callback('click', lambda event: QuitGameEvent.post())
+ selector.add(quit)
+
+ def handle_scene_event(self, ev):
+ if ev.type == pgl.KEYDOWN:
+ if ev.key in KEYS.QUIT:
+ QuitGameEvent.post()
+ return