webxoss-client/GameAudio.js

91 lines
2.2 KiB
JavaScript
Raw Normal View History

2016-10-23 07:28:51 +02:00
'use strict';
function GameAudio () {
this.bgm = document.getElementById('audio-bgm');
this.soundEffect = document.getElementById('audio-sound-effect');
this.bgmCheckBox = document.getElementById('checkbox-bgm');
this.seCheckBox = document.getElementById('checkbox-sound-effect');
this.bgmDisabled = false;
this.seDisabled = false;
this.lastPlay = '';
this.map = {
'white': 'WhiteAng',
'black': 'DarkFßen',
'red': 'reLEIdEN',
'blue': 'Süblueß',
'green': 'GreenWi',
'NevWorry': 'NevWorry',
'main': 'Love Your Enemies.W',
'Battle': 'バトル!'
}
this.loadSettings();
}
GameAudio.prototype.loadSettings = function () {
if (localStorage.getItem('bgm') === 'disabled') {
this.bgmDisabled = true;
}
if (localStorage.getItem('sound effect') === 'disabled') {
this.seDisabled = true;
}
this.bgmCheckBox.checked = !this.bgmDisabled;
this.seCheckBox.checked = !this.seDisabled;
};
GameAudio.prototype.disableBgm = function (flag) {
if (flag) {
this.bgmDisabled = true;
localStorage.setItem('bgm','disabled');
this.bgm.pause();
this.bgm.src = '';
} else {
this.bgmDisabled = false;
localStorage.setItem('bgm','enabled');
this.bgm.src = this.lastPlay;
this.bgm.play();
}
};
GameAudio.prototype.disableSoundEffect = function (flag) {
if (flag) {
this.seDisabled = true;
localStorage.setItem('sound effect','disabled');
} else {
this.bgmDisabled = false;
localStorage.setItem('sound effect','enabled');
}
};
GameAudio.prototype.bgmFadeOut = function (callback) {
var bgm = this.bgm;
var timer = setInterval(function () {
if (bgm.volume <= 0.2) {
bgm.volume = 0;
clearInterval(timer);
callback();
return;
}
bgm.volume -= 0.2;
},200);
};
GameAudio.prototype.playBgm = function (code) {
if (!code) {
this.bgm.src = '';
this.lastPlay = '';
return;
}
var src = './background/' + this.map[code] + '.mp3';
if (this.lastPlay === src) return;
this.lastPlay = src;
if (this.bgmDisabled) return;
this.bgm.src = src;
this.bgm.volume = 1;
this.bgm.play();
};
GameAudio.prototype.playSoundEffect = function (name) {
if (this.seDisabled) return;
this.soundEffect.src = './background/' + name + '.mp3';
this.soundEffect.play();
};