comparison gamelib/menu.py @ 600:fabce47e542f pyntnclick

Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
author Stefano Rivera <stefano@rivera.za.net>
date Sat, 11 Feb 2012 19:56:30 +0200
parents 2d2ea51b73ad
children ac3690c299e6
comparison
equal deleted inserted replaced
599:2d2ea51b73ad 600:fabce47e542f
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 from albow.screen import Screen 5 from pyntnclick.engine import Screen
6 from pyntnclick.widgets.imagebutton import ImageButtonWidget
6 7
7 from pyntnclick.widgets import BoomImageButton 8 import pygame.event
8 9 from pygame.locals import QUIT
9
10 class SplashButton(BoomImageButton):
11
12 FOLDER = 'splash'
13 10
14 11
15 class MenuScreen(Screen): 12 class MenuScreen(Screen):
16 def __init__(self, shell, game_description): 13 def setup(self):
17 Screen.__init__(self, shell) 14 self._background = self.resource.get_image(('splash', 'splash.png'))
18 self._background = game_description.resource.get_image(
19 ('splash', 'splash.png'))
20 self._start_button = SplashButton('play.png', 16, 523, self.start)
21 self._resume_button = SplashButton('resume.png', 256, 523, self.resume,
22 enable=self.check_running)
23 self._quit_button = SplashButton('quit.png', 580, 523, shell.quit)
24 self.add(self._start_button)
25 self.add(self._resume_button)
26 self.add(self._quit_button)
27 15
28 def draw(self, surface): 16 self.add_image_button((16, 523), ('splash', 'play.png'), self.start)
29 surface.blit(self._background, (0, 0)) 17 # FIXME: Only show this when check_running:
30 self._start_button.draw(surface) 18 self.add_image_button((256, 523), ('splash', 'resume.png'), self.resume)
31 self._resume_button.draw(surface) 19 self.add_image_button((580, 523), ('splash', 'quit.png'), self.quit)
32 self._quit_button.draw(surface) 20
21 def add_image_button(self, rect, image_name, callback):
22 image = self.resource.get_image(image_name)
23 widget = ImageButtonWidget(rect, image)
24 widget.add_callback('clicked', callback)
25 self.container.add(widget)
26
27 def draw_background(self):
28 self.surface.blit(self._background, self.surface.get_rect())
33 29
34 def start(self): 30 def start(self):
35 self.shell.game_screen.start_game() 31 self.shell.game_screen.start_game()
36 self.shell.show_screen(self.shell.game_screen) 32 self.shell.show_screen(self.shell.game_screen)
37 33
39 return self.shell.game_screen.running 35 return self.shell.game_screen.running
40 36
41 def resume(self): 37 def resume(self):
42 if self.shell.game_screen.running: 38 if self.shell.game_screen.running:
43 self.shell.show_screen(self.shell.game_screen) 39 self.shell.show_screen(self.shell.game_screen)
40
41 def quit(self):
42 pygame.event.Event(QUIT)