comparison gamelib/menu.py @ 673:f67bc162d69e pyntnclick

Working resume button
author Stefano Rivera <stefano@rivera.za.net>
date Sun, 12 Feb 2012 18:44:41 +0200
parents fdc63049b08c
children bdaffaa8b6bf
comparison
equal deleted inserted replaced
672:55d5d384fc16 673:f67bc162d69e
11 class MenuScreen(Screen): 11 class MenuScreen(Screen):
12 def setup(self): 12 def setup(self):
13 self._background = self.resource.get_image('splash/splash.png') 13 self._background = self.resource.get_image('splash/splash.png')
14 14
15 self.add_image_button((16, 523), 'splash/play.png', self.start) 15 self.add_image_button((16, 523), 'splash/play.png', self.start)
16 if self.check_running(): 16 self._resume_button = self.add_image_button((256, 523),
17 self.add_image_button((256, 523), 'splash/resume.png', self.resume) 17 'splash/resume.png', self.resume)
18 self.add_image_button((580, 523), 'splash/quit.png', self.quit) 18 self.add_image_button((580, 523), 'splash/quit.png', self.quit)
19 19
20 def add_image_button(self, rect, image_name, callback): 20 def add_image_button(self, rect, image_name, callback):
21 image = self.resource.get_image(image_name) 21 image = self.resource.get_image(image_name)
22 widget = ImageButtonWidget(rect, self.gd, image) 22 widget = ImageButtonWidget(rect, self.gd, image)
23 widget.add_callback('clicked', callback) 23 widget.add_callback('clicked', callback)
24 self.container.add(widget) 24 self.container.add(widget)
25 return widget
25 26
26 def draw_background(self): 27 def draw_background(self):
27 self.surface.blit(self._background, self.surface.get_rect()) 28 self.surface.blit(self._background, self.surface.get_rect())
29
30 def on_enter(self):
31 super(MenuScreen, self).on_enter()
32 self._resume_button.visible = self.check_running()
28 33
29 def start(self, ev, widget): 34 def start(self, ev, widget):
30 self.screen_event('game', 'restart') 35 self.screen_event('game', 'restart')
31 self.change_screen('game') 36 self.change_screen('game')
32 37
33 def check_running(self): 38 def check_running(self):
34 # TODO: Implement this magic. 39 return self.gd.running
35 return False
36 40
37 def resume(self, ev, widget): 41 def resume(self, ev, widget):
38 # TODO: Implement this magic. 42 self.change_screen('game')
39 pass
40 43
41 def quit(self, ev, widget): 44 def quit(self, ev, widget):
42 pygame.event.post(pygame.event.Event(QUIT)) 45 pygame.event.post(pygame.event.Event(QUIT))