Mercurial > skaapsteker
view skaapsteker/menuscene.py @ 79:fe8652a060df
Simple menu screen and TextChoice widget
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Mon, 04 Apr 2011 00:46:13 +0200 |
parents | |
children | 12ce1d131a72 |
line wrap: on
line source
import pygame from pygame.locals import (K_ESCAPE, K_DOWN, K_UP, K_q, KEYDOWN, QUIT) from .engine import ChangeScene, Scene from .levelscene import LevelScene from .widgets.text import Text, TextChoice class MenuScene(Scene): def __init__(self): super(MenuScene, self).__init__() self.widgets.append(Text("MENU:", (50, 50), color='white', size=48)) choice = TextChoice(("level1", "level2", "Quit"), (50, 100), color='white') choice.callbacks.append(self.selected) self.widgets.append(choice) def selected(self, option): "Callback from menu TextChoice" if option == 0: ChangeScene.post(LevelScene('level1')) elif option == 1: ChangeScene.post(LevelScene('level2')) elif option == 2: pygame.event.post(pygame.event.Event(QUIT)) def draw(self, surface): surface.fill(pygame.Color('black')) super(MenuScene, self).draw(surface) def dispatch(self, ev): if ev.type is KEYDOWN: if ev.key in(K_q, K_ESCAPE): pygame.event.post(pygame.event.Event(QUIT)) super(MenuScene, self).dispatch(ev)