Mercurial > mamba
view mamba/habitats/level.py @ 415:f1ba457772ae
Go to next level, not back to menu. (Official levels only, though.)
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 17 Sep 2011 15:19:57 +0200 |
parents | 35680740f163 |
children | 30ce046d08c3 |
line wrap: on
line source
"""Where a level object hides.""" from pygame.locals import KEYDOWN from mamba.constants import ESCAPE_KEYS from mamba.engine import Habitat, LevelCompletedEvent from mamba.gamestate import level_done from mamba.widgets.game import GameWidget from mamba.widgets.messagebox import MessageBox from mamba.world import World class LevelHabitat(Habitat): def __init__(self, level, go_menu, go_next_level): super(LevelHabitat, self).__init__() self.go_menu = go_menu self.go_next_level = go_next_level self.world = World(level) game_widget = GameWidget(self.world) self.container.add(game_widget) self.container.add_callback(KEYDOWN, self.keydown_event) self.container.add_callback(LevelCompletedEvent, self.level_completed) def keydown_event(self, ev, widget): if ev.key in ESCAPE_KEYS: self.world.pause() self.go_menu() return True def level_completed(self, ev, widget): if not self.world.pause(): return False self.display_dialog( MessageBox((300, 200), 'Level complete!', self.go_next_level)) level_done(self.world.level.unique_name()) return True