Sound gestion improved
This commit is contained in:
parent
b92d91c01c
commit
c1985ddefc
@ -44,6 +44,8 @@ var assets = {
|
|||||||
fonts: new Array(
|
fonts: new Array(
|
||||||
'Kozuka',
|
'Kozuka',
|
||||||
'TnT'
|
'TnT'
|
||||||
)
|
),
|
||||||
|
|
||||||
|
sounds: {}
|
||||||
|
|
||||||
};
|
};
|
@ -24,11 +24,13 @@ function Loader(){
|
|||||||
|
|
||||||
assets.audio.forEach(function(name){
|
assets.audio.forEach(function(name){
|
||||||
var id = name.substr(0, name.length-4);
|
var id = name.substr(0, name.length-4);
|
||||||
var audio = $("<audio id='"+id+"' src='/assets/audio/"+name+"' />");
|
var audio = new Audio();
|
||||||
audio.appendTo("#assets");
|
audio.src = '/assets/audio/'+name;
|
||||||
audio.on('canplay', function(){
|
audio.load();
|
||||||
|
audio.onloadeddata = function(){
|
||||||
|
assets.sounds[id] = audio;
|
||||||
_this.assetLoaded();
|
_this.assetLoaded();
|
||||||
});
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
|
@ -10,19 +10,23 @@ function loadSong(selectedSong){
|
|||||||
|
|
||||||
this.run = function(){
|
this.run = function(){
|
||||||
|
|
||||||
document.getElementById("start").play();
|
//assets.sounds["start"]["audio"][0].play();
|
||||||
$("#assets").append("<audio id='main-music' src='/songs/"+_selectedSong.folder+"/"+_selectedSong.title+".mp3'></audio>");
|
|
||||||
$("#assets").append("<img id='music-bg' src='/songs/"+_selectedSong.folder+"/bg.png' />");
|
$("#assets").append("<img id='music-bg' src='/songs/"+_selectedSong.folder+"/bg.png' />");
|
||||||
|
|
||||||
|
var audio = new Audio();
|
||||||
|
audio.src = '/songs/'+_selectedSong.folder+'/'+_selectedSong.title+'.mp3';
|
||||||
|
audio.load();
|
||||||
|
|
||||||
$("#music-bg").load(function(){
|
$("#music-bg").load(function(){
|
||||||
_bgLoaded=true;
|
_bgLoaded=true;
|
||||||
_this.checkIfEverythingLoaded();
|
_this.checkIfEverythingLoaded();
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#main-music").on('canplay', function(){
|
audio.onloadeddata = function(){
|
||||||
_musicLoaded=true;
|
_musicLoaded=true;
|
||||||
|
assets.sounds["main-music"]=audio;
|
||||||
_this.checkIfEverythingLoaded();
|
_this.checkIfEverythingLoaded();
|
||||||
});
|
};
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url : _songFilePath,
|
url : _songFilePath,
|
||||||
|
@ -38,7 +38,7 @@ function SongSelect(){
|
|||||||
});
|
});
|
||||||
|
|
||||||
$(".song:not(.opened)").click(function(){
|
$(".song:not(.opened)").click(function(){
|
||||||
document.getElementById("don").play();
|
//assets.sounds["ka"][0].play();
|
||||||
$(".difficulty").hide();
|
$(".difficulty").hide();
|
||||||
$(".opened").removeClass("opened", 300);
|
$(".opened").removeClass("opened", 300);
|
||||||
$(this).addClass("opened", 300, "linear", function(){
|
$(this).addClass("opened", 300, "linear", function(){
|
||||||
@ -61,9 +61,9 @@ function SongSelect(){
|
|||||||
|
|
||||||
songDifficulties.sort(function(a, b){
|
songDifficulties.sort(function(a, b){
|
||||||
if(a.difficulty < b.difficulty)
|
if(a.difficulty < b.difficulty)
|
||||||
return -1;
|
|
||||||
if(a.difficulty > b.difficulty)
|
|
||||||
return 1;
|
return 1;
|
||||||
|
if(a.difficulty > b.difficulty)
|
||||||
|
return -1;
|
||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -5,59 +5,43 @@ function soundSystem(controller){
|
|||||||
var _circles = [];
|
var _circles = [];
|
||||||
var _circleID = -1;
|
var _circleID = -1;
|
||||||
var _measures = [];
|
var _measures = [];
|
||||||
var _channel_max = 10;// number of channels
|
var _sounds = assets.sounds;
|
||||||
var _mainMusicChannel=-1;
|
var _channels=[];
|
||||||
|
var _channelMAX=20;
|
||||||
var _audiochannels = new Array();
|
|
||||||
|
|
||||||
for (var a=0;a<_channel_max;a++) {// prepare the channels
|
for (var i=0;i<_channelMAX;i++) {// prepare the channels
|
||||||
_audiochannels[a] = new Array();
|
_channels[i] = {};
|
||||||
_audiochannels[a]['channel'] = new Audio(); // create a new audio object
|
_channels[i]["end"] = -1;
|
||||||
_audiochannels[a]['finished'] = -1; // expected end time for this channel
|
_channels[i]["audio"] = new Audio();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.playSound = function(soundID){
|
|
||||||
|
|
||||||
if(soundID=="main-music" && _mainMusicChannel!=-1 && _mainMusicChannel.currentTime>0 ){//if music was paused but is going to be played
|
|
||||||
_mainMusicChannel.play();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
|
|
||||||
for(var i=0;i<_audiochannels.length;i++){
|
|
||||||
|
|
||||||
var thistime = new Date();
|
|
||||||
if (_audiochannels[i]['finished'] < thistime.getTime()) {// is this channel finished?
|
|
||||||
_audiochannels[i]['finished'] = thistime.getTime() + document.getElementById(soundID).duration*1000;
|
|
||||||
_audiochannels[i]['channel'].src = document.getElementById(soundID).src;
|
|
||||||
_audiochannels[i]['channel'].load();
|
|
||||||
_audiochannels[i]['channel'].play();
|
|
||||||
|
|
||||||
if(soundID=="main-music" && _mainMusicChannel==-1){
|
|
||||||
_mainMusicChannel=_audiochannels[i]['channel'];
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.pauseSound = function(soundID, stop){
|
this.playSound = function(soundID){
|
||||||
for (var i=0;i<_audiochannels.length;i++){
|
|
||||||
if(_audiochannels[i]['channel'].src == document.getElementById(soundID).src){
|
for(var i=0;i<_channelMAX;i++){ //play in different sounds in different channels
|
||||||
_audiochannels[i]['channel'].pause();
|
var now = new Date();
|
||||||
if(stop) _audiochannels[i]['channel'].currentTime=0;
|
if (_channels[i]["end"] < now.getTime()) {// is this channel finished?
|
||||||
}
|
_channels[i]["end"] = now.getTime() + _sounds[soundID].duration*1000;
|
||||||
}
|
_channels[i]["audio"].src = _sounds[soundID].src;
|
||||||
}
|
_channels[i]["audio"].load();
|
||||||
|
_channels[i]["audio"].play();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
this.pauseSound = function(soundID, stop){
|
||||||
|
_sounds[soundID].pause();
|
||||||
|
if(stop) _sounds[soundID].currentTime=0;
|
||||||
|
}
|
||||||
|
|
||||||
this.fadeOutMusic = function(){
|
this.fadeOutMusic = function(){
|
||||||
|
|
||||||
if(_mainMusicChannel.volume.toFixed(1)!=0.0){
|
if(_sounds["main-music"].volume.toFixed(1)!=0.0){
|
||||||
_mainMusicChannel.volume-=0.1;
|
_sounds["main-music"].volume-=0.1;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
_mainMusicChannel.pause();
|
_sounds["main-music"].pause();
|
||||||
controller.fadeOutOver();
|
controller.fadeOutOver();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ function Titlescreen(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.goNext = function(){
|
this.goNext = function(){
|
||||||
document.getElementById("don").play();
|
//assets.sounds["don"][0].play();
|
||||||
new SongSelect();
|
new SongSelect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user