Mercurial > mamba
view mamba/habitats/levelmenu.py @ 310:b371c2ea309e
excised level locking
author | Adrianna Pińska <adrianna.pinska@gmail.com> |
---|---|
date | Fri, 16 Sep 2011 18:32:31 +0200 |
parents | e6a3b00f997b |
children | fba74abad7b7 |
line wrap: on
line source
"""Level menu.""" from pygame.locals import KEYDOWN from mamba.gamestate import levels, done_levels from mamba.constants import ESCAPE_KEYS from mamba.engine import Habitat, NewHabitatEvent from mamba.widgets.levelbutton import LevelButton class LevelMenu(Habitat): def __init__(self): super(LevelMenu, self).__init__() self.level_buttons = {} for level, name in enumerate(levels): button = LevelButton((50 + 75 * level, 100), str(level + 1), done=level in done_levels) button.add_callback('clicked', self.level_selected, name) self.container.add(button) self.level_buttons[name] = button self.container.add_callback(KEYDOWN, self.keydown_event) self.update_buttons() def update_buttons(self): for name, button in self.level_buttons.iteritems(): button.done = name in done_levels def level_selected(self, ev, widget, name): from mamba.habitats.level import LevelHabitat NewHabitatEvent.post(LevelHabitat(name)) return True def keydown_event(self, ev, widget): if ev.key in ESCAPE_KEYS: return self.return_to_mainmenu(ev, widget) def return_to_mainmenu(self, ev, widget): from mamba.habitats.mainmenu import MainMenu NewHabitatEvent.post(MainMenu()) return True