Mercurial > boomslang
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) |