# HG changeset patch # User Stefano Rivera # Date 1315946846 -7200 # Node ID 6a866d4710e3760579c5ffd8c6cbd8e883ce57a5 # Parent 31881bf8dddad6c2de1f367ac8c2e71c661d82a3 Level chooser scene diff -r 31881bf8ddda -r 6a866d4710e3 mamba/habitats/levelmenu.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mamba/habitats/levelmenu.py Tue Sep 13 22:47:26 2011 +0200 @@ -0,0 +1,39 @@ +"""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 diff -r 31881bf8ddda -r 6a866d4710e3 mamba/habitats/mainmenu.py --- a/mamba/habitats/mainmenu.py Tue Sep 13 22:42:44 2011 +0200 +++ b/mamba/habitats/mainmenu.py Tue Sep 13 22:47:26 2011 +0200 @@ -12,28 +12,28 @@ class MainMenu(Habitat): def __init__(self): super(MainMenu, self).__init__() - start = TextButton((100, 100), "Dev Level", color='white') + start = TextButton((100, 100), "Play Game") start.add_callback('clicked', self.start_event) self.container.add(start) - edit = TextButton((100, 200), "Edit Dev Level", color='white') + edit = TextButton((100, 200), "Edit Dev Level") edit.add_callback('clicked', self.edit_event) self.container.add(edit) - quit = TextButton((100, 300), "Quit", color='white') + quit = TextButton((100, 300), "Quit") quit.add_callback('clicked', self.quit_keydown_event) self.container.add(quit) self.container.add_callback(KEYDOWN, self.keydown_event) # Just for debugging cascading containers... c = Container((400, 100)) - c.add(TextButton((400, 100), "3", color='white')) + c.add(TextButton((400, 100), "3")) self.container.add(c) c = Container((400, 200)) - c.add(TextButton((400, 200), "4", color='white')) + c.add(TextButton((400, 200), "4")) self.container.add(c) def start_event(self, ev, widget): - from mamba.habitats.level import LevelHabitat - NewHabitatEvent.post(LevelHabitat('dev')) + from mamba.habitats.levelmenu import LevelMenu + NewHabitatEvent.post(LevelMenu()) return True def edit_event(self, ev, widget):