Mercurial > mamba
view mamba/habitats/levelmenu.py @ 158:6a866d4710e3
Level chooser scene
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Tue, 13 Sep 2011 22:47:26 +0200 |
parents | |
children | bea4857487de |
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.widgets.imagebutton import LockableTextButton class LevelMenu(Habitat): def __init__(self): super(LevelMenu, self).__init__() self.levels = [] for level in range(1, 6): button = LockableTextButton((50 + 75 * level, 100), str(level)) self.container.add(button) button.add_callback('clicked', self.level_selected, level) if level > 1: button.locked = True self.container.add_callback(KEYDOWN, self.keydown_event) def level_selected(self, ev, widget, level): # Demo: if widget.locked: widget.locked = False if level == 1: from mamba.habitats.level import LevelHabitat NewHabitatEvent.post(LevelHabitat('dev')) 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