annotate gamelib/menu.py @ 639:fdc63049b08c pyntnclick

Add game_description to the widgets,, since it looks a useful thing to do
author Neil Muller <neil@dip.sun.ac.za>
date Sun, 12 Feb 2012 01:31:14 +0200
parents d9d1a9c4b833
children f67bc162d69e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
1 # menu.py
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
2 # Copyright Boomslang team, 2010 (see COPYING File)
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
3 # Main menu for the game
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
4
607
f2b1ddcc4986 Make menu and endscreen work.
Jeremy Thurgood <firxen@gmail.com>
parents: 606
diff changeset
5 import pygame.event
f2b1ddcc4986 Make menu and endscreen work.
Jeremy Thurgood <firxen@gmail.com>
parents: 606
diff changeset
6 from pygame.locals import QUIT
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
7 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
8 from pyntnclick.widgets.imagebutton import ImageButtonWidget
446
a6de33fecb97 Hook up splash screen
Stefano Rivera <stefano@rivera.za.net>
parents: 124
diff changeset
9
124
97322b78d1c1 Minor style cleanups
Neil Muller <neil@dip.sun.ac.za>
parents: 100
diff changeset
10
84
c76f2fad2af5 Draw CursorWidget on top of StateWidget
Stefano Rivera <stefano@rivera.za.net>
parents: 66
diff changeset
11 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
12 def setup(self):
607
f2b1ddcc4986 Make menu and endscreen work.
Jeremy Thurgood <firxen@gmail.com>
parents: 606
diff changeset
13 self._background = self.resource.get_image('splash/splash.png')
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
14
607
f2b1ddcc4986 Make menu and endscreen work.
Jeremy Thurgood <firxen@gmail.com>
parents: 606
diff changeset
15 self.add_image_button((16, 523), 'splash/play.png', self.start)
609
f20262b41cbf Remove remnants of albow from menu.
Jeremy Thurgood <firxen@gmail.com>
parents: 608
diff changeset
16 if self.check_running():
f20262b41cbf Remove remnants of albow from menu.
Jeremy Thurgood <firxen@gmail.com>
parents: 608
diff changeset
17 self.add_image_button((256, 523), 'splash/resume.png', self.resume)
607
f2b1ddcc4986 Make menu and endscreen work.
Jeremy Thurgood <firxen@gmail.com>
parents: 606
diff changeset
18 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
19
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
20 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
21 image = self.resource.get_image(image_name)
639
fdc63049b08c Add game_description to the widgets,, since it looks a useful thing to do
Neil Muller <neil@dip.sun.ac.za>
parents: 619
diff changeset
22 widget = ImageButtonWidget(rect, self.gd, image)
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
23 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
24 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
25
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 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
27 self.surface.blit(self._background, self.surface.get_rect())
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
28
605
ac3690c299e6 Callbacks take 3 arguments
Stefano Rivera <stefano@rivera.za.net>
parents: 600
diff changeset
29 def start(self, ev, widget):
619
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 614
diff changeset
30 self.screen_event('game', 'restart')
614
974cc69d3762 Special cases aren't special enough to be named special.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 610
diff changeset
31 self.change_screen('game')
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
32
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
33 def check_running(self):
609
f20262b41cbf Remove remnants of albow from menu.
Jeremy Thurgood <firxen@gmail.com>
parents: 608
diff changeset
34 # TODO: Implement this magic.
f20262b41cbf Remove remnants of albow from menu.
Jeremy Thurgood <firxen@gmail.com>
parents: 608
diff changeset
35 return False
17
55f1969e41c9 Add simple menu screen
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
36
605
ac3690c299e6 Callbacks take 3 arguments
Stefano Rivera <stefano@rivera.za.net>
parents: 600
diff changeset
37 def resume(self, ev, widget):
609
f20262b41cbf Remove remnants of albow from menu.
Jeremy Thurgood <firxen@gmail.com>
parents: 608
diff changeset
38 # TODO: Implement this magic.
f20262b41cbf Remove remnants of albow from menu.
Jeremy Thurgood <firxen@gmail.com>
parents: 608
diff changeset
39 pass
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
Stefano Rivera <stefano@rivera.za.net>
parents: 605
diff changeset
42 pygame.event.post(pygame.event.Event(QUIT))