Add music handler
This commit is contained in:
parent
8ced833778
commit
8d75c5e19f
3 changed files with 63 additions and 0 deletions
|
@ -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() {
|
||||
|
|
|
@ -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
56
main/Music.js
Normal 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;
|
||||
})();
|
Loading…
Add table
Reference in a new issue