# HG changeset patch # User Stefano Rivera # Date 1329065081 -7200 # Node ID f67bc162d69e06e3161180ae3934125bd2f19c71 # Parent 55d5d384fc1606d1359b80960acc66c75413e385 Working resume button diff -r 55d5d384fc16 -r f67bc162d69e gamelib/menu.py --- a/gamelib/menu.py Sun Feb 12 18:39:16 2012 +0200 +++ b/gamelib/menu.py Sun Feb 12 18:44:41 2012 +0200 @@ -13,8 +13,8 @@ self._background = self.resource.get_image('splash/splash.png') self.add_image_button((16, 523), 'splash/play.png', self.start) - if self.check_running(): - self.add_image_button((256, 523), 'splash/resume.png', self.resume) + self._resume_button = self.add_image_button((256, 523), + 'splash/resume.png', self.resume) self.add_image_button((580, 523), 'splash/quit.png', self.quit) def add_image_button(self, rect, image_name, callback): @@ -22,21 +22,24 @@ widget = ImageButtonWidget(rect, self.gd, image) widget.add_callback('clicked', callback) self.container.add(widget) + return widget def draw_background(self): self.surface.blit(self._background, self.surface.get_rect()) + def on_enter(self): + super(MenuScreen, self).on_enter() + self._resume_button.visible = self.check_running() + def start(self, ev, widget): self.screen_event('game', 'restart') self.change_screen('game') def check_running(self): - # TODO: Implement this magic. - return False + return self.gd.running def resume(self, ev, widget): - # TODO: Implement this magic. - pass + self.change_screen('game') def quit(self, ev, widget): pygame.event.post(pygame.event.Event(QUIT)) diff -r 55d5d384fc16 -r f67bc162d69e pyntnclick/gamescreen.py --- a/pyntnclick/gamescreen.py Sun Feb 12 18:39:16 2012 +0200 +++ b/pyntnclick/gamescreen.py Sun Feb 12 18:44:41 2012 +0200 @@ -306,7 +306,7 @@ def setup(self): super(GameScreen, self).setup() - self.running = False + self.gd.running = False self.create_initial_state = self.gd.initial_state self.container.add_callback(KEYDOWN, self.key_pressed) self.state_widget = None @@ -332,7 +332,7 @@ self.inventory = self.toolbar.inventory self.container.add(self.toolbar) - self.running = True + self.gd.running = True def animate(self): """Animate the state widget""" diff -r 55d5d384fc16 -r f67bc162d69e pyntnclick/main.py --- a/pyntnclick/main.py Sun Feb 12 18:39:16 2012 +0200 +++ b/pyntnclick/main.py Sun Feb 12 18:44:41 2012 +0200 @@ -69,6 +69,7 @@ self.sound = Sound(self.resource) self.constants = self.game_constants() self.debug_options = [] + self.running = False def initial_state(self): """Create a copy of the initial game state.""" diff -r 55d5d384fc16 -r f67bc162d69e pyntnclick/widgets/imagebutton.py --- a/pyntnclick/widgets/imagebutton.py Sun Feb 12 18:39:16 2012 +0200 +++ b/pyntnclick/widgets/imagebutton.py Sun Feb 12 18:44:41 2012 +0200 @@ -11,6 +11,9 @@ rect = pygame.Rect(rect, image.get_size()) super(ImageButtonWidget, self).__init__(rect, gd) self.image = image + self.visible = True def draw(self, surface): - surface.blit(self.image, self.rect) + self.disabled = not self.visible + if self.visible: + surface.blit(self.image, self.rect)