Mercurial > skaapsteker
changeset 492:b02d51e06c17
Add Victory CutScene (and refactor CutScenes)
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sat, 09 Apr 2011 22:37:59 +0200 |
parents | 6f110e347f30 |
children | cb2060f8316f |
files | skaapsteker/cutscene.py |
diffstat | 1 files changed, 47 insertions(+), 30 deletions(-) [+] |
line wrap: on
line diff
--- a/skaapsteker/cutscene.py Sat Apr 09 22:37:50 2011 +0200 +++ b/skaapsteker/cutscene.py Sat Apr 09 22:37:59 2011 +0200 @@ -10,27 +10,12 @@ from .levelscene import LevelScene from .widgets.text import Text, ButtonSet, TextButton, unindent_text + class CutScene(Scene): def __init__(self, game_state, soundsystem): super(CutScene, self).__init__(game_state, soundsystem) - self._background_img = data.load_image('backgrounds/' + self.background) - fill = pygame.Surface(self._background_img.get_size(), flags=SRCALPHA) - fill.fill((255, 255, 255, 128)) - self._background_img.convert_alpha(fill) - self._background_img.blit(fill, (0, 0)) - self._background_img.convert_alpha() - self._start_time = pygame.time.get_ticks() - self._run_time = 60000 # ms - self._background_music = self.music - text_widget = Text(unindent_text(self.text), - pygame.Rect(20, 20, - constants.SCREEN[0] - 40, - constants.SCREEN[1] - 40), - size=24, shadow='gray', wrap=True) - self.widgets.append(text_widget) - button_set = ButtonSet() # TODO: Dynamic position button_set.append(TextButton("Continue", (20, constants.SCREEN[1] - 68), @@ -43,6 +28,36 @@ from .menuscene import MenuScene ChangeScene.post((MenuScene,)) + def dispatch(self, ev): + if ev.type is KEYDOWN: + if ev.key in(K_q, K_ESCAPE): + self.done() + super(CutScene, self).dispatch(ev) + + def enter(self): + if self._background_music: + self._soundsystem.play_background_music(self._background_music) + + +class TextCutScene(CutScene): + def __init__(self, game_state, soundsystem): + super(TextCutScene, self).__init__(game_state, soundsystem) + self._background_img = data.load_image('backgrounds/' + self.background) + fill = pygame.Surface(self._background_img.get_size(), flags=SRCALPHA) + fill.fill((255, 255, 255, 128)) + self._background_img.convert_alpha(fill) + self._background_img.blit(fill, (0, 0)) + self._background_img.convert_alpha() + self._start_time = pygame.time.get_ticks() + self._run_time = 60000 # ms + + text_widget = Text(unindent_text(self.text), + pygame.Rect(20, 20, + constants.SCREEN[0] - 40, + constants.SCREEN[1] - 40), + size=24, shadow='gray', wrap=True) + self.widgets.append(text_widget) + def draw(self, surface, engine): viewport = surface.get_clip() @@ -56,20 +71,10 @@ surface.blit(self._background_img, viewport.topleft, pygame.Rect((pos, bottom), viewport.size)) - super(CutScene, self).draw(surface, engine) - - def dispatch(self, ev): - if ev.type is KEYDOWN: - if ev.key in(K_q, K_ESCAPE): - self.done() - super(CutScene, self).dispatch(ev) - - def enter(self): - if self._background_music: - self._soundsystem.play_background_music(self._background_music) + super(TextCutScene, self).draw(surface, engine) -class OpeningCutScene(CutScene): +class OpeningCutScene(TextCutScene): text = u""" Many moons ago, an evil nine-tailed kitsune, a fearsome fox god, ruled the land. @@ -94,7 +99,7 @@ ChangeScene.post((LevelScene, '.'.join([fox.level, fox.doorway]))) -class UsageCutScene(CutScene): +class UsageCutScene(TextCutScene): text = u""" Arrow keys control your movement. @@ -106,7 +111,7 @@ music = None -class CreditsCutScene(CutScene): +class CreditsCutScene(TextCutScene): text = u""" Credits: @@ -135,3 +140,15 @@ """ background = 'background_03_back.png' music = None + + +class VictoryCutScene(CutScene): + music = None + + def __init__(self, game_state, soundsystem): + super(VictoryCutScene, self).__init__(game_state, soundsystem) + self._background_img = data.load_image('backgrounds/victory-menu.png') + + def draw(self, surface, engine): + surface.blit(self._background_img, (0, 0)) + super(VictoryCutScene, self).draw(surface, engine)