Mercurial > rinkhals
comparison gamelib/gameover.py @ 139:1d73de63bd71
Add basic game over screen
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Wed, 02 Sep 2009 22:48:39 +0000 |
parents | |
children | 082868bea873 |
comparison
equal
deleted
inserted
replaced
138:7c88a12cb0b6 | 139:1d73de63bd71 |
---|---|
1 """The Game Over Screen""" | |
2 | |
3 from pgu import gui | |
4 import pygame | |
5 | |
6 import engine | |
7 import constants | |
8 import imagecache | |
9 | |
10 def add_game_over(app, gameboard): | |
11 """Add the game over menu to the app""" | |
12 for widget in app.widgets[:]: | |
13 app.remove(widget) | |
14 game_over = GameOver(gameboard) | |
15 | |
16 c = GameOverContainer(align=0, valign=0) | |
17 c.add(game_over, 0, 0) | |
18 | |
19 app.init(c) | |
20 | |
21 class GameOverContainer(gui.Container): | |
22 def paint(self, s): | |
23 pygame.display.set_caption('Game Over') | |
24 #splash = imagecache.load_image("images/splash.png") | |
25 #pygame.display.get_surface().blit(splash, (0, 0)) | |
26 gui.Container.paint(self, s) | |
27 | |
28 class GameOver(gui.Table): | |
29 def __init__(self, gameboard, **params): | |
30 gui.Table.__init__(self, **params) | |
31 | |
32 def return_pressed(): | |
33 pygame.event.post(engine.GO_MAIN_MENU) | |
34 | |
35 def quit_pressed(): | |
36 pygame.event.post(engine.QUIT) | |
37 | |
38 if len(gameboard.chickens) > 0: | |
39 self.td(gui.Label("You Survived", color=constants.FG_COLOR), | |
40 colspan=3) | |
41 else: | |
42 self.td(gui.Label("You Lost", color=constants.FG_COLOR), | |
43 colspan=3) | |
44 | |
45 self.tr() | |
46 self.td(gui.Label("Groats : %d" % gameboard.cash, | |
47 color=constants.FG_COLOR)) | |
48 self.td(gui.Label(" Chickens : %d " % len(gameboard.chickens), | |
49 color=constants.FG_COLOR)) | |
50 self.td(gui.Label(" Eggs : %d" % gameboard.eggs, | |
51 color=constants.FG_COLOR)) | |
52 self.tr() | |
53 self.td(gui.Label("Final score : %d" % (gameboard.cash + | |
54 constants.SELL_PRICE_CHICKEN * len(gameboard.chickens) + | |
55 constants.SELL_PRICE_EGG * gameboard.eggs), | |
56 color=constants.FG_COLOR), colspan=3) | |
57 | |
58 return_button = gui.Button("Return to Main Menu") | |
59 return_button.connect(gui.CLICK, return_pressed) | |
60 | |
61 quit_button = gui.Button("Quit") | |
62 quit_button.connect(gui.CLICK, quit_pressed) | |
63 | |
64 style = { | |
65 "padding_bottom": 15, | |
66 } | |
67 td_kwargs = { | |
68 "align": 0, | |
69 "style": style, | |
70 "colspan": 3, | |
71 } | |
72 | |
73 self.tr() | |
74 self.td(return_button, **td_kwargs) | |
75 | |
76 self.tr() | |
77 self.td(quit_button, **td_kwargs) |