view gamelib/menu.py @ 600:fabce47e542f pyntnclick

Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
author Stefano Rivera <stefano@rivera.za.net>
date Sat, 11 Feb 2012 19:56:30 +0200
parents 2d2ea51b73ad
children ac3690c299e6
line wrap: on
line source

# menu.py
# Copyright Boomslang team, 2010 (see COPYING File)
# Main menu for the game

from pyntnclick.engine import Screen
from pyntnclick.widgets.imagebutton import ImageButtonWidget

import pygame.event
from pygame.locals import QUIT


class MenuScreen(Screen):
    def setup(self):
        self._background = self.resource.get_image(('splash', 'splash.png'))

        self.add_image_button((16, 523), ('splash', 'play.png'), self.start)
        # FIXME: Only show this when check_running:
        self.add_image_button((256, 523), ('splash', 'resume.png'), self.resume)
        self.add_image_button((580, 523), ('splash', 'quit.png'), self.quit)

    def add_image_button(self, rect, image_name, callback):
        image = self.resource.get_image(image_name)
        widget = ImageButtonWidget(rect, image)
        widget.add_callback('clicked', callback)
        self.container.add(widget)

    def draw_background(self):
        self.surface.blit(self._background, self.surface.get_rect())

    def start(self):
        self.shell.game_screen.start_game()
        self.shell.show_screen(self.shell.game_screen)

    def check_running(self):
        return self.shell.game_screen.running

    def resume(self):
        if self.shell.game_screen.running:
            self.shell.show_screen(self.shell.game_screen)

    def quit(self):
        pygame.event.Event(QUIT)