comparison skaapsteker/cutscene.py @ 243:4050e77dade6

Add support for background music tracks
author Neil Muller <drnlmuller@gmail.com>
date Thu, 07 Apr 2011 16:42:54 +0200
parents 691d2795ae3c
children 8c0c132b422f
comparison
equal deleted inserted replaced
242:c30fcf903d29 243:4050e77dade6
7 from . import data 7 from . import data
8 from .engine import ChangeScene, Scene 8 from .engine import ChangeScene, Scene
9 from .widgets.text import Text, unindent_text 9 from .widgets.text import Text, unindent_text
10 10
11 class CutScene(Scene): 11 class CutScene(Scene):
12 def __init__(self, game_state, text, background): 12 def __init__(self, game_state, text, background, music=None):
13 super(CutScene, self).__init__(game_state) 13 super(CutScene, self).__init__(game_state)
14 self.text = text 14 self.text = text
15 self.text_widget = Text(text, pygame.Rect(20, 20, 800-40, 600-40), 15 self.text_widget = Text(text, pygame.Rect(20, 20, 800-40, 600-40),
16 size=24, shadow='gray', wrap=True) 16 size=24, shadow='gray', wrap=True)
17 self.background = data.load_image('backgrounds/' + background) 17 self.background = data.load_image('backgrounds/' + background)
18 self.start_time = pygame.time.get_ticks() 18 self.start_time = pygame.time.get_ticks()
19 self.run_time = 60000 # ms 19 self.run_time = 60000 # ms
20 self._background_music = None
21 if music and pygame.mixer.get_init():
22 self._background_music = data.filepath(music)
20 23
21 def draw(self, surface, engine): 24 def draw(self, surface, engine):
22 viewport = surface.get_clip() 25 viewport = surface.get_clip()
23 26
24 # Scoll background back and forth: 27 # Scoll background back and forth:
40 # Avoid circular import... 43 # Avoid circular import...
41 from .menuscene import MenuScene 44 from .menuscene import MenuScene
42 ChangeScene.post(MenuScene(self.game_state)) 45 ChangeScene.post(MenuScene(self.game_state))
43 super(CutScene, self).dispatch(ev) 46 super(CutScene, self).dispatch(ev)
44 47
48 def enter(self):
49 if self._background_music:
50 pygame.mixer.music.load(self._background_music)
51 pygame.mixer.music.play(-1)
52
53 def leave(self):
54 if self._background_music:
55 pygame.mixer.music.stop()
56
45 57
46 def opening_cutscene(game_state): 58 def opening_cutscene(game_state):
47 text = u""" 59 text = u"""
48 Many moons ago, an evil nine-tailed kitsune, a fearsome fox god, ruled the 60 Many moons ago, an evil nine-tailed kitsune, a fearsome fox god, ruled the
49 land. 61 land.