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)