Mercurial > skaapsteker
diff skaapsteker/cutscene.py @ 247:8c0c132b422f
Button widget for cutscene
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Thu, 07 Apr 2011 19:25:48 +0200 |
parents | 4050e77dade6 |
children | de60329cfc9f |
line wrap: on
line diff
--- a/skaapsteker/cutscene.py Thu Apr 07 19:11:08 2011 +0200 +++ b/skaapsteker/cutscene.py Thu Apr 07 19:25:48 2011 +0200 @@ -6,21 +6,33 @@ from . import data from .engine import ChangeScene, Scene -from .widgets.text import Text, unindent_text +from .widgets.text import Text, ButtonSet, TextButton, unindent_text class CutScene(Scene): def __init__(self, game_state, text, background, music=None): super(CutScene, self).__init__(game_state) - self.text = text - self.text_widget = Text(text, pygame.Rect(20, 20, 800-40, 600-40), - size=24, shadow='gray', wrap=True) self.background = data.load_image('backgrounds/' + background) self.start_time = pygame.time.get_ticks() self.run_time = 60000 # ms + self._background_music = None if music and pygame.mixer.get_init(): self._background_music = data.filepath(music) + text_widget = Text(text, pygame.Rect(20, 20, 800-40, 600-40), + size=24, shadow='gray', wrap=True) + self.widgets.append(text_widget) + + button_set = ButtonSet() + button_set.append(TextButton("Continue", (300, 500), size=24, color='yellow')) + button_set.callbacks.append(self.done) + self.widgets.append(button_set) + + def done(self, selected=None, data=None): + # Avoid circular import... + from .menuscene import MenuScene + ChangeScene.post(MenuScene(self.game_state)) + def draw(self, surface, engine): viewport = surface.get_clip() @@ -34,15 +46,12 @@ surface.blit(self.background, viewport.topleft, pygame.Rect((pos, bottom), viewport.size)) - self.text_widget.draw(surface) super(CutScene, self).draw(surface, engine) def dispatch(self, ev): if ev.type is KEYDOWN: if ev.key in(K_q, K_ESCAPE): - # Avoid circular import... - from .menuscene import MenuScene - ChangeScene.post(MenuScene(self.game_state)) + self.done() super(CutScene, self).dispatch(ev) def enter(self):