- self._title.pos = (300, 200)
- self._level = self.actors.add(TextButton("Level"))
- self._level.pos = (300, 300)
- self._credits = self.actors.add(TextButton("Credits"))
- self._credits.pos = (300, 400)
+ self._title.pos = (300, 100)
+ self._nav = ActorNavigator()
+ self._menu = [
+ TextButton("New Game", action=self.change_to_new_game),
+ TextButton("Resume", action=self.change_to_resume),
+ TextButton("Credits", action=self.change_to_credits),
+ TextButton("Quit", action=self.quit),
+ ]
+ for i, item in enumerate(self._menu):
+ item.pos = (300, 200 + (i * 100))
+ self.actors.add(item)
+ self._nav.connect(
+ self._menu, [keys.DOWN, keys.RIGHT], [keys.UP, keys.LEFT],
+ wrap=True)
+ self._nav.current.select()
+
+ def change_to_resume(self):
+ from .level import GameLevelScene
+ return [ChangeSceneEvent(GameLevelScene())]
+
+ def change_to_new_game(self):
+ from .level import GameLevelScene
+ return [
+ WorldEvent("reset"),
+ ChangeSceneEvent(GameLevelScene())
+ ]
+
+ def change_to_credits(self):
+ from .credits import CreditsScene
+ return [ChangeSceneEvent(CreditsScene())]
+
+ def quit(self):
+ return [QuitEvent()]