Mercurial > skaapsteker
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. |