comparison gamelib/menu.py @ 607:f2b1ddcc4986 pyntnclick

Make menu and endscreen work.
author Jeremy Thurgood <firxen@gmail.com>
date Sat, 11 Feb 2012 20:34:23 +0200
parents 5d62644288eb
children a25cd1c6335a
comparison
equal deleted inserted replaced
606:5d62644288eb 607:f2b1ddcc4986
1 # menu.py 1 # menu.py
2 # Copyright Boomslang team, 2010 (see COPYING File) 2 # Copyright Boomslang team, 2010 (see COPYING File)
3 # Main menu for the game 3 # Main menu for the game
4 4
5 import pygame.event
6 from pygame.locals import QUIT
5 from pyntnclick.engine import Screen 7 from pyntnclick.engine import Screen
6 from pyntnclick.widgets.imagebutton import ImageButtonWidget 8 from pyntnclick.widgets.imagebutton import ImageButtonWidget
7
8 import pygame.event
9 from pygame.locals import QUIT
10 9
11 10
12 class MenuScreen(Screen): 11 class MenuScreen(Screen):
13 def setup(self): 12 def setup(self):
14 self._background = self.resource.get_image(('splash', 'splash.png')) 13 self._background = self.resource.get_image('splash/splash.png')
15 14
16 self.add_image_button((16, 523), ('splash', 'play.png'), self.start) 15 self.add_image_button((16, 523), 'splash/play.png', self.start)
17 # FIXME: Only show this when check_running: 16 # FIXME: Only show this when check_running:
18 self.add_image_button((256, 523), ('splash', 'resume.png'), self.resume) 17 self.add_image_button((256, 523), 'splash/resume.png', self.resume)
19 self.add_image_button((580, 523), ('splash', 'quit.png'), self.quit) 18 self.add_image_button((580, 523), 'splash/quit.png', self.quit)
20 19
21 def add_image_button(self, rect, image_name, callback): 20 def add_image_button(self, rect, image_name, callback):
22 image = self.resource.get_image(image_name) 21 image = self.resource.get_image(image_name)
23 widget = ImageButtonWidget(rect, image) 22 widget = ImageButtonWidget(rect, image)
24 widget.add_callback('clicked', callback) 23 widget.add_callback('clicked', callback)
26 25
27 def draw_background(self): 26 def draw_background(self):
28 self.surface.blit(self._background, self.surface.get_rect()) 27 self.surface.blit(self._background, self.surface.get_rect())
29 28
30 def start(self, ev, widget): 29 def start(self, ev, widget):
31 self.shell.game_screen.start_game() 30 from gamelib.endscreen import EndScreen
32 self.shell.show_screen(self.shell.game_screen) 31 self.change_screen(EndScreen(self.game_description))
33 32
34 def check_running(self): 33 def check_running(self):
35 return self.shell.game_screen.running 34 return self.shell.game_screen.running
36 35
37 def resume(self, ev, widget): 36 def resume(self, ev, widget):