Mercurial > rinkhals
diff 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 |
line wrap: on
line diff
--- a/gamelib/engine.py Fri Sep 04 07:19:58 2009 +0000 +++ b/gamelib/engine.py Fri Sep 04 15:00:54 2009 +0000 @@ -9,6 +9,7 @@ import sound import constants import mainmenu +import helpscreen class Engine(Game): def __init__(self, main_app): @@ -37,6 +38,11 @@ """Open the main menu""" self.open_window(self.main_menu) + def set_help_screen(self): + """Open the main menu""" + help_screen = helpscreen.make_help_screen() + self.open_window(help_screen) + def create_game_over(self): """Create and open the Game Over window""" game_over = gameover.create_game_over(self.gameboard) @@ -51,6 +57,8 @@ if events_equal(e, START_DAY): self.game.create_game_board() return DayState(self.game) + elif events_equal(e, GO_HELP_SCREEN): + return HelpScreenState(self.game) elif e.type is KEYDOWN: if e.key == K_ESCAPE: return Quit(self.game) @@ -69,6 +77,28 @@ update = self.game.main_app.update(screen) pygame.display.update(update) +class HelpScreenState(State): + def init(self): + sound.stop_background_music() + self.game.set_help_screen() + + def event(self, e): + if e.type is KEYDOWN and e.key == K_ESCAPE: + return MainMenu(self.game) + elif events_equal(e, GO_MAIN_MENU): + return MainMenuState(self.game) + elif e.type is not QUIT: + self.game.main_app.event(e) + + def paint(self, screen): + screen.fill((0,0,0)) + self.game.main_app.paint(screen) + pygame.display.flip() + + def update(self, screen): + update = self.game.main_app.update(screen) + pygame.display.update(update) + class DayState(State): def init(self): """Add some chickens to the farm""" @@ -189,6 +219,7 @@ START_DAY = pygame.event.Event(USEREVENT, name="START_DAY") START_NIGHT = pygame.event.Event(USEREVENT, name="START_NIGHT") GO_MAIN_MENU = pygame.event.Event(USEREVENT, name="GO_MAIN_MENU") +GO_HELP_SCREEN = pygame.event.Event(USEREVENT, name="GO_HELP_SCREEN") MOVE_FOX_ID = USEREVENT + 1 MOVE_FOXES = pygame.event.Event(MOVE_FOX_ID, name="MOVE_FOXES") QUIT = pygame.event.Event(QUIT)