Add music handler

This commit is contained in:
RedEnchilada 2016-05-12 21:35:17 -05:00
parent 8ced833778
commit 8d75c5e19f
3 changed files with 63 additions and 0 deletions

View file

@ -106,6 +106,10 @@ Level = function(levelName) {
level.stage.addChild(tint);
}
level.stage.addChild(wipe);
if (level.map.music && level.map.music != "none" && level.map.music != Music.current) {
Music.play(level.map.music);
}
}
level.think = function() {

View file

@ -6,6 +6,8 @@ Game = (function() {
Game.init = function(callback) {
Renderer.init(initScene);
Music.init();
function initScene() {
// Run callback to set the inital scene.
callback();
@ -36,6 +38,7 @@ Game = (function() {
function flipScenes() {
if (currentScene != incomingScene) {
currentScene.end();
currentScene.stage.destroy();
incomingScene.init();
currentScene = incomingScene;
}

56
main/Music.js Normal file
View file

@ -0,0 +1,56 @@
Music = (function() {
var S = createjs.Sound;
var Music = {};
var musics = [
"ocean",
"boss",
];
Music.init = function() {
musics.forEach(function(m) {
S.registerSound("assets/music/" + m + ".ogg", "M_" + m);
});
}
var currentMusic;
Music.play = function(name, noloop) {
if (currentMusic) {
currentMusic.stop();
currentMusic.destroy();
}
Music.current = name;
currentMusic = S.play("M_" + name, {interrupt: createjs.Sound.INTERRUPT_ANY, loop: noloop ? 0 : -1});
}
Music.fadeout = function(time) {
if (!currentMusic) {
return;
}
var m = currentMusic;
fade();
function fade() {
if (m != currentMusic) {
return;
}
if (currentMusic.volume <= 0) {
currentMusic.stop();
currentMusic.destroy();
return;
}
currentMusic.volume -= 1/16;
window.setTimeout(fade, time/16);
}
}
return Music;
})();