comparison gamelib/menu.py @ 792:bdaffaa8b6bf pyntnclick

Loading and saving! (Plus a bunch of other stuff to make it possible.)
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 27 Jan 2013 12:43:28 +0200
parents f67bc162d69e
children 642564a3bedf
comparison
equal deleted inserted replaced
791:56ec01e51f3d 792:bdaffaa8b6bf
1 # menu.py 1 # menu.py
2 # Copyright Boomslang team, 2010 (see COPYING File) 2 # Copyright Boomslang team, 2010 (see COPYING File)
3 # Main menu for the game 3 # Main menu for the game
4 4
5 import pygame.event 5 from pyntnclick.menuscreen import MenuScreen
6 from pygame.locals import QUIT
7 from pyntnclick.engine import Screen
8 from pyntnclick.widgets.imagebutton import ImageButtonWidget
9 6
10 7
11 class MenuScreen(Screen): 8 class SSMenuScreen(MenuScreen):
12 def setup(self): 9 BACKGROUND_IMAGE = 'splash/splash.png'
13 self._background = self.resource.get_image('splash/splash.png')
14 10
15 self.add_image_button((16, 523), 'splash/play.png', self.start) 11 def make_new_game_button(self):
16 self._resume_button = self.add_image_button((256, 523), 12 return self.make_image_button((16, 523), 'splash/play.png')
17 'splash/resume.png', self.resume)
18 self.add_image_button((580, 523), 'splash/quit.png', self.quit)
19 13
20 def add_image_button(self, rect, image_name, callback): 14 def make_resume_game_button(self):
21 image = self.resource.get_image(image_name) 15 return self.make_image_button((256, 523), 'splash/resume.png')
22 widget = ImageButtonWidget(rect, self.gd, image)
23 widget.add_callback('clicked', callback)
24 self.container.add(widget)
25 return widget
26 16
27 def draw_background(self): 17 def make_quit_button(self):
28 self.surface.blit(self._background, self.surface.get_rect()) 18 return self.make_image_button((580, 523), 'splash/quit.png')
29
30 def on_enter(self):
31 super(MenuScreen, self).on_enter()
32 self._resume_button.visible = self.check_running()
33
34 def start(self, ev, widget):
35 self.screen_event('game', 'restart')
36 self.change_screen('game')
37
38 def check_running(self):
39 return self.gd.running
40
41 def resume(self, ev, widget):
42 self.change_screen('game')
43
44 def quit(self, ev, widget):
45 pygame.event.post(pygame.event.Event(QUIT))