mirror of
https://github.com/webxoss/webxoss-client.git
synced 2024-11-20 05:49:55 +01:00
91 lines
No EOL
2.2 KiB
JavaScript
91 lines
No EOL
2.2 KiB
JavaScript
'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();
|
|
}; |