# HG changeset patch # User Stefano Rivera # Date 1316288528 -7200 # Node ID 165fcc74795108a1b78ae8f893781910171796e2 # Parent 5da148acb36a0afc0f7f5ed1c92de963111be4c4 Splishy splash diff -r 5da148acb36a -r 165fcc747951 mamba/engine.py --- a/mamba/engine.py Sat Sep 17 21:39:15 2011 +0200 +++ b/mamba/engine.py Sat Sep 17 21:42:08 2011 +0200 @@ -64,9 +64,12 @@ def dispatch(self, ev): self.container.event(ev) + def draw_background(self): + self.surface.fill(pygame.Color('gray')) + def draw(self, surface): if self.surface: - self.surface.fill(pygame.Color('gray')) + self.draw_background() self.container.draw(self.surface) surface.blit(self.surface, self.surface.get_rect()) diff -r 5da148acb36a -r 165fcc747951 mamba/habitats/mainmenu.py --- a/mamba/habitats/mainmenu.py Sat Sep 17 21:39:15 2011 +0200 +++ b/mamba/habitats/mainmenu.py Sat Sep 17 21:42:08 2011 +0200 @@ -1,39 +1,38 @@ """Main menu.""" +import pygame from pygame.locals import KEYDOWN, QUIT import pygame.event +from mamba.data import load_image from mamba.constants import ESCAPE_KEYS from mamba.engine import Habitat, NewHabitatEvent from mamba.level import Level -from mamba.widgets.base import Container -from mamba.widgets.text import TextButton +from mamba.widgets.overlay import OverlayButton class MainMenu(Habitat): def __init__(self): super(MainMenu, self).__init__() - self.add_button((100, 100), "Play game", self.start_event) - self.add_button((100, 200), "Edit level", self.edit_event) - self.add_button((100, 300), "Quit", self.quit_keydown_event) - self.add_button((100, 400), "User Levels", self.userlevels_event) - self.add_button((100, 500), "Network Levels", self.networklevels_event) + + self.bg_image = load_image('menus/splash.png') + self.add_box((117, 135), (556, 85), 'play', self.start_event) + self.add_box((117, 255), (260, 102), 'user', self.userlevels_event) + self.add_box((112, 384), (310, 102), 'network', + self.networklevels_event) + self.add_box((424, 258), (267, 96), 'editor', self.edit_event) + self.add_box((435, 389), (210, 90), 'quit', self.quit_keydown_event) self.container.add_callback(KEYDOWN, self.keydown_event) - # Just for debugging cascading containers... - c = Container((400, 100)) - c.add(TextButton((400, 100), "3")) - self.container.add(c) - c = Container((400, 200)) - c.add(TextButton((400, 200), "4")) - self.container.add(c) + def draw_background(self): + self.surface.blit(self.bg_image, self.surface.get_rect()) - def add_button(self, pos, text, clicked): - button = TextButton(pos, text) - if clicked is not None: - button.add_callback('clicked', clicked) - self.container.add(button) - return button + def add_box(self, pos, size, overlay_name, clicked): + image = load_image('menus/highlight-%s.png' % overlay_name) + box = OverlayButton(pygame.Rect(pos, size), image) + box.add_callback('clicked', clicked) + self.container.add(box) + return box def start_event(self, ev, widget): from mamba.habitats.levelmenu import OfficialLevelMenu