Mercurial > boomslang
annotate gamelib/menu.py @ 606:5d62644288eb pyntnclick
QUIT!
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sat, 11 Feb 2012 20:31:25 +0200 |
parents | ac3690c299e6 |
children | f2b1ddcc4986 |
rev | line source |
---|---|
17 | 1 # menu.py |
2 # Copyright Boomslang team, 2010 (see COPYING File) | |
3 # Main menu for the game | |
4 | |
600
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
5 from pyntnclick.engine import Screen |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
6 from pyntnclick.widgets.imagebutton import ImageButtonWidget |
446
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
7 |
600
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
8 import pygame.event |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
9 from pygame.locals import QUIT |
17 | 10 |
124 | 11 |
84
c76f2fad2af5
Draw CursorWidget on top of StateWidget
Stefano Rivera <stefano@rivera.za.net>
parents:
66
diff
changeset
|
12 class MenuScreen(Screen): |
600
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
13 def setup(self): |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
14 self._background = self.resource.get_image(('splash', 'splash.png')) |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
15 |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
16 self.add_image_button((16, 523), ('splash', 'play.png'), self.start) |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
17 # FIXME: Only show this when check_running: |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
18 self.add_image_button((256, 523), ('splash', 'resume.png'), self.resume) |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
19 self.add_image_button((580, 523), ('splash', 'quit.png'), self.quit) |
446
a6de33fecb97
Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents:
124
diff
changeset
|
20 |
600
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
21 def add_image_button(self, rect, image_name, callback): |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
22 image = self.resource.get_image(image_name) |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
23 widget = ImageButtonWidget(rect, image) |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
24 widget.add_callback('clicked', callback) |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
25 self.container.add(widget) |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
26 |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
27 def draw_background(self): |
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
28 self.surface.blit(self._background, self.surface.get_rect()) |
17 | 29 |
605
ac3690c299e6
Callbacks take 3 arguments
Stefano Rivera <stefano@rivera.za.net>
parents:
600
diff
changeset
|
30 def start(self, ev, widget): |
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
|
31 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
|
32 self.shell.show_screen(self.shell.game_screen) |
17 | 33 |
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
|
34 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
|
35 return self.shell.game_screen.running |
17 | 36 |
605
ac3690c299e6
Callbacks take 3 arguments
Stefano Rivera <stefano@rivera.za.net>
parents:
600
diff
changeset
|
37 def resume(self, ev, widget): |
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 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
|
39 self.shell.show_screen(self.shell.game_screen) |
600
fabce47e542f
Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents:
599
diff
changeset
|
40 |
605
ac3690c299e6
Callbacks take 3 arguments
Stefano Rivera <stefano@rivera.za.net>
parents:
600
diff
changeset
|
41 def quit(self, ev, widget): |
606 | 42 pygame.event.post(pygame.event.Event(QUIT)) |