Mercurial > boomslang
annotate gamelib/menu.py @ 450:ece69836f00a
Image buttons for game over screen
author | Neil Muller <neil@dip.sun.ac.za> |
---|---|
date | Sun, 29 Aug 2010 00:50:25 +0200 |
parents | a6de33fecb97 |
children | 0ce08d5e2acb |
rev | line source |
---|---|
17 | 1 # menu.py |
2 # Copyright Boomslang team, 2010 (see COPYING File) | |
3 # Main menu for the game | |
4 | |
5 from albow.screen import Screen | |
446
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
6 from albow.controls import Image, Button, Label |
17 | 7 from albow.layout import Column |
446
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
8 from albow.resource import get_image |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
9 from pygame import Rect |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
10 |
450
ece69836f00a
Image buttons for game over screen
Neil Muller <neil@dip.sun.ac.za>
parents:
446
diff
changeset
|
11 from gamelib.widgets import BoomImageButton |
446
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
12 |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
13 |
450
ece69836f00a
Image buttons for game over screen
Neil Muller <neil@dip.sun.ac.za>
parents:
446
diff
changeset
|
14 class SplashButton(BoomImageButton): |
446
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
15 |
450
ece69836f00a
Image buttons for game over screen
Neil Muller <neil@dip.sun.ac.za>
parents:
446
diff
changeset
|
16 FOLDER = 'splash' |
17 | 17 |
124 | 18 |
84
c76f2fad2af5
Draw CursorWidget on top of StateWidget
Stefano Rivera <stefano@rivera.za.net>
parents:
66
diff
changeset
|
19 class MenuScreen(Screen): |
19 | 20 def __init__(self, shell): |
84
c76f2fad2af5
Draw CursorWidget on top of StateWidget
Stefano Rivera <stefano@rivera.za.net>
parents:
66
diff
changeset
|
21 Screen.__init__(self, shell) |
446
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
22 self._background = get_image('splash', 'splash.png') |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
23 self._start_button = SplashButton('play.png', 16, 523, self.start) |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
24 self._resume_button = SplashButton('resume.png', 256, 523, self.resume, |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
25 enable=self.check_running) |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
26 self._quit_button = SplashButton('quit.png', 580, 523, shell.quit) |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
27 self.add(self._start_button) |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
28 self.add(self._resume_button) |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
29 self.add(self._quit_button) |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
30 |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
31 def draw(self, surface): |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
32 surface.blit(self._background, (0, 0)) |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
33 self._start_button.draw(surface) |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
34 self._resume_button.draw(surface) |
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
35 self._quit_button.draw(surface) |
17 | 36 |
19 | 37 def start(self): |
100
b5b6cbf556e6
Make start new game start a new game. Add Resume to main menu
Neil Muller <neil@dip.sun.ac.za>
parents:
84
diff
changeset
|
38 self.shell.game_screen.start_game() |
24
9d5de13e2ac3
Add a game screen. So far, the game content looks a *lot* like the main menu.
Jeremy Thurgood <firxen@gmail.com>
parents:
19
diff
changeset
|
39 self.shell.show_screen(self.shell.game_screen) |
17 | 40 |
100
b5b6cbf556e6
Make start new game start a new game. Add Resume to main menu
Neil Muller <neil@dip.sun.ac.za>
parents:
84
diff
changeset
|
41 def check_running(self): |
b5b6cbf556e6
Make start new game start a new game. Add Resume to main menu
Neil Muller <neil@dip.sun.ac.za>
parents:
84
diff
changeset
|
42 return self.shell.game_screen.running |
17 | 43 |
100
b5b6cbf556e6
Make start new game start a new game. Add Resume to main menu
Neil Muller <neil@dip.sun.ac.za>
parents:
84
diff
changeset
|
44 def resume(self): |
b5b6cbf556e6
Make start new game start a new game. Add Resume to main menu
Neil Muller <neil@dip.sun.ac.za>
parents:
84
diff
changeset
|
45 if self.shell.game_screen.running: |
b5b6cbf556e6
Make start new game start a new game. Add Resume to main menu
Neil Muller <neil@dip.sun.ac.za>
parents:
84
diff
changeset
|
46 self.shell.show_screen(self.shell.game_screen) |
b5b6cbf556e6
Make start new game start a new game. Add Resume to main menu
Neil Muller <neil@dip.sun.ac.za>
parents:
84
diff
changeset
|
47 |