changeset 467:165fcc747951

Splishy splash
author Stefano Rivera <stefano@rivera.za.net>
date Sat, 17 Sep 2011 21:42:08 +0200
parents 5da148acb36a
children 2079f6f576e1
files mamba/engine.py mamba/habitats/mainmenu.py
diffstat 2 files changed, 23 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- 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())
 
--- 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