From 32762a4288fa94c992cc88e31b0c4e636446bf25 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Mon, 1 Nov 2021 16:53:05 -0400 Subject: [PATCH] add sounds to hollywoo-flixel --- .../hollywoo-flixel/src/hollywoo_flixel/FlxDirector.hx | 3 ++- .../hollywoo-flixel/src/hollywoo_flixel/FlxDirector.kiss | 8 ++++++++ projects/hollywoo-flixel/src/hollywoo_flixel/FlxMovie.hx | 3 ++- projects/hollywoo/src/hollywoo/Director.hx | 3 ++- projects/hollywoo/src/hollywoo/Movie.hx | 2 +- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/projects/hollywoo-flixel/src/hollywoo_flixel/FlxDirector.hx b/projects/hollywoo-flixel/src/hollywoo_flixel/FlxDirector.hx index 2c4a0338..8c3fcf04 100644 --- a/projects/hollywoo-flixel/src/hollywoo_flixel/FlxDirector.hx +++ b/projects/hollywoo-flixel/src/hollywoo_flixel/FlxDirector.hx @@ -12,6 +12,7 @@ import hollywoo.Director; import hollywoo_flixel.FlxMovie; import flixel.util.FlxColor; import flixel.text.FlxText; +import flixel.system.FlxSound; @:build(kiss.Kiss.build()) -class FlxDirector implements Director {} +class FlxDirector implements Director {} diff --git a/projects/hollywoo-flixel/src/hollywoo_flixel/FlxDirector.kiss b/projects/hollywoo-flixel/src/hollywoo_flixel/FlxDirector.kiss index e6e98c6b..23e76209 100644 --- a/projects/hollywoo-flixel/src/hollywoo_flixel/FlxDirector.kiss +++ b/projects/hollywoo-flixel/src/hollywoo_flixel/FlxDirector.kiss @@ -101,3 +101,11 @@ (dialogBox.kill) (cc) })) + +(method :Void playSound [:FlxSound sound :Float volumeMod :Continuation cc] + // TODO preserve its original volume + (set sound.volume volumeMod) + (sound.play) + // TODO wait for its duration + (cc) + ) diff --git a/projects/hollywoo-flixel/src/hollywoo_flixel/FlxMovie.hx b/projects/hollywoo-flixel/src/hollywoo_flixel/FlxMovie.hx index 1116490b..423fd9b9 100644 --- a/projects/hollywoo-flixel/src/hollywoo_flixel/FlxMovie.hx +++ b/projects/hollywoo-flixel/src/hollywoo_flixel/FlxMovie.hx @@ -2,6 +2,7 @@ package hollywoo_flixel; import flixel.FlxState; import flixel.FlxSprite; +import flixel.system.FlxSound; import hollywoo.Movie; import hollywoo_flixel.ActorFlxSprite; import hollywoo_flixel.SceneFlxState; @@ -28,4 +29,4 @@ enum FlxScreenPosition { /** * Model/controller of a Hollywoo-Flixel film, and main execution script */ -class FlxMovie extends Movie {} +class FlxMovie extends Movie {} diff --git a/projects/hollywoo/src/hollywoo/Director.hx b/projects/hollywoo/src/hollywoo/Director.hx index 84bc1f91..28ba3f92 100644 --- a/projects/hollywoo/src/hollywoo/Director.hx +++ b/projects/hollywoo/src/hollywoo/Director.hx @@ -9,9 +9,10 @@ enum Appearance { typedef Continuation = Void -> Void; -interface Director { +interface Director { function showScene(scene:Scene, appearance:Appearance, cc:Continuation):Void; function showCharacter(character:Character, appearance:Appearance, cc:Continuation):Void; + function playSound(sound:Sound, volumeMod:Float, cc:Continuation):Void; function waitForInputOrDelay(delaySeconds:Float, cc:Continuation):Void; function showDialog(speakerName:String, type:SpeechType, wryly:String, dialog:String, cc:Continuation):Void; } diff --git a/projects/hollywoo/src/hollywoo/Movie.hx b/projects/hollywoo/src/hollywoo/Movie.hx index a6f96302..0ba48614 100644 --- a/projects/hollywoo/src/hollywoo/Movie.hx +++ b/projects/hollywoo/src/hollywoo/Movie.hx @@ -9,7 +9,7 @@ import hollywoo.Director; * Model/controller of a Hollywoo film, and main execution script */ @:build(kiss.Kiss.build()) -class Movie extends AsyncEmbeddedScript { +class Movie extends AsyncEmbeddedScript { // TODO for some reason this wasn't working when declared in Movie.kiss: // Mutable representation of frames in time: var scenes:Map> = [];