add sounds to hollywoo-flixel
This commit is contained in:
@@ -12,6 +12,7 @@ import hollywoo.Director;
|
|||||||
import hollywoo_flixel.FlxMovie;
|
import hollywoo_flixel.FlxMovie;
|
||||||
import flixel.util.FlxColor;
|
import flixel.util.FlxColor;
|
||||||
import flixel.text.FlxText;
|
import flixel.text.FlxText;
|
||||||
|
import flixel.system.FlxSound;
|
||||||
|
|
||||||
@:build(kiss.Kiss.build())
|
@:build(kiss.Kiss.build())
|
||||||
class FlxDirector implements Director<String, FlxStagePosition, FlxStageFacing, FlxScreenPosition, ActorFlxSprite> {}
|
class FlxDirector implements Director<String, FlxStagePosition, FlxStageFacing, FlxScreenPosition, ActorFlxSprite, FlxSound> {}
|
||||||
|
@@ -101,3 +101,11 @@
|
|||||||
(dialogBox.kill)
|
(dialogBox.kill)
|
||||||
(cc)
|
(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)
|
||||||
|
)
|
||||||
|
@@ -2,6 +2,7 @@ package hollywoo_flixel;
|
|||||||
|
|
||||||
import flixel.FlxState;
|
import flixel.FlxState;
|
||||||
import flixel.FlxSprite;
|
import flixel.FlxSprite;
|
||||||
|
import flixel.system.FlxSound;
|
||||||
import hollywoo.Movie;
|
import hollywoo.Movie;
|
||||||
import hollywoo_flixel.ActorFlxSprite;
|
import hollywoo_flixel.ActorFlxSprite;
|
||||||
import hollywoo_flixel.SceneFlxState;
|
import hollywoo_flixel.SceneFlxState;
|
||||||
@@ -28,4 +29,4 @@ enum FlxScreenPosition {
|
|||||||
/**
|
/**
|
||||||
* Model/controller of a Hollywoo-Flixel film, and main execution script
|
* Model/controller of a Hollywoo-Flixel film, and main execution script
|
||||||
*/
|
*/
|
||||||
class FlxMovie extends Movie<String, FlxStagePosition, FlxStageFacing, FlxScreenPosition, ActorFlxSprite> {}
|
class FlxMovie extends Movie<String, FlxStagePosition, FlxStageFacing, FlxScreenPosition, ActorFlxSprite, FlxSound> {}
|
||||||
|
@@ -9,9 +9,10 @@ enum Appearance {
|
|||||||
|
|
||||||
typedef Continuation = Void -> Void;
|
typedef Continuation = Void -> Void;
|
||||||
|
|
||||||
interface Director<Set, StagePosition, StageFacing, ScreenPosition, Actor> {
|
interface Director<Set, StagePosition, StageFacing, ScreenPosition, Actor, Sound> {
|
||||||
function showScene(scene:Scene<Set, StagePosition, StageFacing, ScreenPosition, Actor>, appearance:Appearance, cc:Continuation):Void;
|
function showScene(scene:Scene<Set, StagePosition, StageFacing, ScreenPosition, Actor>, appearance:Appearance, cc:Continuation):Void;
|
||||||
function showCharacter(character:Character<StagePosition, StageFacing, Actor>, appearance:Appearance, cc:Continuation):Void;
|
function showCharacter(character:Character<StagePosition, StageFacing, Actor>, appearance:Appearance, cc:Continuation):Void;
|
||||||
|
function playSound(sound:Sound, volumeMod:Float, cc:Continuation):Void;
|
||||||
function waitForInputOrDelay(delaySeconds:Float, cc:Continuation):Void;
|
function waitForInputOrDelay(delaySeconds:Float, cc:Continuation):Void;
|
||||||
function showDialog(speakerName:String, type:SpeechType<StagePosition, StageFacing, Actor>, wryly:String, dialog:String, cc:Continuation):Void;
|
function showDialog(speakerName:String, type:SpeechType<StagePosition, StageFacing, Actor>, wryly:String, dialog:String, cc:Continuation):Void;
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,7 @@ import hollywoo.Director;
|
|||||||
* Model/controller of a Hollywoo film, and main execution script
|
* Model/controller of a Hollywoo film, and main execution script
|
||||||
*/
|
*/
|
||||||
@:build(kiss.Kiss.build())
|
@:build(kiss.Kiss.build())
|
||||||
class Movie<Set, StagePosition, StageFacing, ScreenPosition, Actor> extends AsyncEmbeddedScript {
|
class Movie<Set, StagePosition, StageFacing, ScreenPosition, Actor, Sound> extends AsyncEmbeddedScript {
|
||||||
// TODO for some reason this wasn't working when declared in Movie.kiss:
|
// TODO for some reason this wasn't working when declared in Movie.kiss:
|
||||||
// Mutable representation of frames in time:
|
// Mutable representation of frames in time:
|
||||||
var scenes:Map<String, Scene<Set, StagePosition, StageFacing, ScreenPosition, Actor>> = [];
|
var scenes:Map<String, Scene<Set, StagePosition, StageFacing, ScreenPosition, Actor>> = [];
|
||||||
|
Reference in New Issue
Block a user