Mercurial > boomslang
changeset 100:b5b6cbf556e6
Make start new game start a new game. Add Resume to main menu
author | Neil Muller <neil@dip.sun.ac.za> |
---|---|
date | Tue, 24 Aug 2010 08:48:50 +0200 |
parents | 367b1c9c3c6d |
children | 19d784fd3918 |
files | gamelib/gamescreen.py gamelib/menu.py |
diffstat | 2 files changed, 21 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/gamelib/gamescreen.py Tue Aug 24 08:16:56 2010 +0200 +++ b/gamelib/gamescreen.py Tue Aug 24 08:48:50 2010 +0200 @@ -126,13 +126,20 @@ class GameScreen(Screen): def __init__(self, shell): Screen.__init__(self, shell) + self.running = False + def _clear_all(self): + for widget in self.subwidgets[:]: + self.remove(widget) + + def start_game(self): + self._clear_all() # TODO: Randomly plonk the state here for now self.state = initial_state() self.state_widget = StateWidget(self.state) self.add(self.state_widget) - self.popup_menu = PopupMenu(shell) + self.popup_menu = PopupMenu(self.shell) self.menubutton = PopupMenuButton('Menu', action=self.popup_menu.show_menu) @@ -153,8 +160,7 @@ self.detail = DetailWindow(self.state) - # Test items - self.state.add_inventory_item('triangle') + self.running = True def show_detail(self): self.state_widget.add_centered(self.detail)
--- a/gamelib/menu.py Tue Aug 24 08:16:56 2010 +0200 +++ b/gamelib/menu.py Tue Aug 24 08:48:50 2010 +0200 @@ -10,17 +10,28 @@ def __init__(self, shell): Screen.__init__(self, shell) StartButton = Button('Start New Game', action = self.start) + ResumeButton = Button('Resume Game', action = self.resume, + enable=self.check_running) QuitButton = Button('Quit', action = shell.quit) Title = Label('Suspended Sentence') menu = Column([ Title, StartButton, + ResumeButton, QuitButton, ], align='l', spacing=20) self.add_centered(menu) def start(self): - print 'Starting the game' + self.shell.game_screen.start_game() self.shell.show_screen(self.shell.game_screen) + def check_running(self): + return self.shell.game_screen.running + def resume(self): + if self.shell.game_screen.running: + self.shell.show_screen(self.shell.game_screen) + + +