changeset 673:f67bc162d69e pyntnclick

Working resume button
author Stefano Rivera <stefano@rivera.za.net>
date Sun, 12 Feb 2012 18:44:41 +0200
parents 55d5d384fc16
children 94d3552bb4eb
files gamelib/menu.py pyntnclick/gamescreen.py pyntnclick/main.py pyntnclick/widgets/imagebutton.py
diffstat 4 files changed, 16 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- 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))
--- 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"""
--- 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."""
--- 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)