Mercurial > rinkhals
comparison gamelib/engine.py @ 179:e2b5262c2b11
Add basic help screen
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Fri, 04 Sep 2009 15:00:54 +0000 |
parents | fa57868123d7 |
children | c0cad267222b |
comparison
equal
deleted
inserted
replaced
178:92387848caec | 179:e2b5262c2b11 |
---|---|
7 import gameboard | 7 import gameboard |
8 import gameover | 8 import gameover |
9 import sound | 9 import sound |
10 import constants | 10 import constants |
11 import mainmenu | 11 import mainmenu |
12 import helpscreen | |
12 | 13 |
13 class Engine(Game): | 14 class Engine(Game): |
14 def __init__(self, main_app): | 15 def __init__(self, main_app): |
15 self.main_app = main_app | 16 self.main_app = main_app |
16 self.clock = pygame.time.Clock() | 17 self.clock = pygame.time.Clock() |
35 | 36 |
36 def set_main_menu(self): | 37 def set_main_menu(self): |
37 """Open the main menu""" | 38 """Open the main menu""" |
38 self.open_window(self.main_menu) | 39 self.open_window(self.main_menu) |
39 | 40 |
41 def set_help_screen(self): | |
42 """Open the main menu""" | |
43 help_screen = helpscreen.make_help_screen() | |
44 self.open_window(help_screen) | |
45 | |
40 def create_game_over(self): | 46 def create_game_over(self): |
41 """Create and open the Game Over window""" | 47 """Create and open the Game Over window""" |
42 game_over = gameover.create_game_over(self.gameboard) | 48 game_over = gameover.create_game_over(self.gameboard) |
43 self.open_window(game_over) | 49 self.open_window(game_over) |
44 | 50 |
49 | 55 |
50 def event(self, e): | 56 def event(self, e): |
51 if events_equal(e, START_DAY): | 57 if events_equal(e, START_DAY): |
52 self.game.create_game_board() | 58 self.game.create_game_board() |
53 return DayState(self.game) | 59 return DayState(self.game) |
60 elif events_equal(e, GO_HELP_SCREEN): | |
61 return HelpScreenState(self.game) | |
54 elif e.type is KEYDOWN: | 62 elif e.type is KEYDOWN: |
55 if e.key == K_ESCAPE: | 63 if e.key == K_ESCAPE: |
56 return Quit(self.game) | 64 return Quit(self.game) |
57 elif e.key == K_s: | 65 elif e.key == K_s: |
58 self.game.create_game_board() | 66 self.game.create_game_board() |
59 return DayState(self.game) | 67 return DayState(self.game) |
68 elif e.type is not QUIT: | |
69 self.game.main_app.event(e) | |
70 | |
71 def paint(self, screen): | |
72 screen.fill((0,0,0)) | |
73 self.game.main_app.paint(screen) | |
74 pygame.display.flip() | |
75 | |
76 def update(self, screen): | |
77 update = self.game.main_app.update(screen) | |
78 pygame.display.update(update) | |
79 | |
80 class HelpScreenState(State): | |
81 def init(self): | |
82 sound.stop_background_music() | |
83 self.game.set_help_screen() | |
84 | |
85 def event(self, e): | |
86 if e.type is KEYDOWN and e.key == K_ESCAPE: | |
87 return MainMenu(self.game) | |
88 elif events_equal(e, GO_MAIN_MENU): | |
89 return MainMenuState(self.game) | |
60 elif e.type is not QUIT: | 90 elif e.type is not QUIT: |
61 self.game.main_app.event(e) | 91 self.game.main_app.event(e) |
62 | 92 |
63 def paint(self, screen): | 93 def paint(self, screen): |
64 screen.fill((0,0,0)) | 94 screen.fill((0,0,0)) |
187 return (e1.type is e2.type and e1.name == e2.name) | 217 return (e1.type is e2.type and e1.name == e2.name) |
188 | 218 |
189 START_DAY = pygame.event.Event(USEREVENT, name="START_DAY") | 219 START_DAY = pygame.event.Event(USEREVENT, name="START_DAY") |
190 START_NIGHT = pygame.event.Event(USEREVENT, name="START_NIGHT") | 220 START_NIGHT = pygame.event.Event(USEREVENT, name="START_NIGHT") |
191 GO_MAIN_MENU = pygame.event.Event(USEREVENT, name="GO_MAIN_MENU") | 221 GO_MAIN_MENU = pygame.event.Event(USEREVENT, name="GO_MAIN_MENU") |
222 GO_HELP_SCREEN = pygame.event.Event(USEREVENT, name="GO_HELP_SCREEN") | |
192 MOVE_FOX_ID = USEREVENT + 1 | 223 MOVE_FOX_ID = USEREVENT + 1 |
193 MOVE_FOXES = pygame.event.Event(MOVE_FOX_ID, name="MOVE_FOXES") | 224 MOVE_FOXES = pygame.event.Event(MOVE_FOX_ID, name="MOVE_FOXES") |
194 QUIT = pygame.event.Event(QUIT) | 225 QUIT = pygame.event.Event(QUIT) |