From 6c367f78d171f8267be2f2c44bd499111e88ba65 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Thu, 5 Dec 2019 10:30:44 -0500 Subject: [PATCH] Added a cut_scene function. used a space between spoken strings with the space key in display_text. --- libstormgames.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/libstormgames.py b/libstormgames.py index f7f0014..9ea154d 100755 --- a/libstormgames.py +++ b/libstormgames.py @@ -64,6 +64,8 @@ def initialize_gui(gameTitle): # start the display (required by the event loop) pygame.display.set_mode((320, 200)) pygame.display.set_caption(gameTitle) + # Reserve the cut scene channel + pygame.mixer.set_reserved(0) # Load sounds from the sound directory and creates a list like that {'bottle': 'bottle.ogg'} soundFiles = [f for f in listdir("sounds/") if isfile(join("sounds/", f)) and (f.split('.')[1].lower() in ["ogg","wav"])] #lets make a dict with pygame.mixer.Sound() objects {'bottle':} @@ -74,6 +76,18 @@ def initialize_gui(gameTitle): time.sleep(soundData['game-intro'].get_length()) return soundData +def cut_scene(sounds, soundName): + pygame.event.clear() + pygame.mixer.stop() + c = pygame.mixer.Channel(0) + c.play(sounds[soundName]) + while pygame.mixer.get_busy(): + pygame.event.poll() + if event.type == pygame.KEYDOWN: + pygame.mixer.stop() + pygame.event.pump() + return + def play_random(sounds, soundName, pause = False): key = [] for i in sounds.keys(): @@ -112,7 +126,7 @@ def display_text(text): if event.key == pygame.K_DOWN and i < len(text) - 1: i = i + 1 if event.key == pygame.K_UP and i > 0: i = i - 1 if event.key == pygame.K_SPACE: - speak(''.join(text[1:])) + speak(' '.join(text[1:])) else: speak(text[i]) if event.key == pygame.K_c: