Mercurial > mamba
view mamba/habitats/levelmenu.py @ 322:86c5c6afdac0
Thumbnails on the level screen
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Fri, 16 Sep 2011 20:01:13 +0200 |
parents | fba74abad7b7 |
children | 8643c7dbc8ad |
line wrap: on
line source
"""Level menu.""" from pygame.locals import KEYDOWN from mamba.constants import ESCAPE_KEYS from mamba.engine import Habitat, NewHabitatEvent from mamba.gamestate import levels, done_levels from mamba.level import Level from mamba.widgets.levelbutton import LevelButton class LevelMenu(Habitat): def __init__(self): super(LevelMenu, self).__init__() self.level_buttons = {} for i, name in enumerate(levels): level = Level(name) button = LevelButton((20 + 120 * i, 20), level, done=name 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(widget.level)) 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