我正在创建一个 JavaScript 游戏,并且如果玩家掉入水中(并且死亡),则需要一个启动剪辑到sound
。
然而,由于水是由多个蓝色立方体组成的,因此音频当前会为玩家所属的每一块“水”重复。
无论如何,音频只播放一次,无论玩家接触多少水块?
我正在尝试使用for statement
,但没有运气。
var count = 1;
for (var i = 0; i < count; i++){
var splash = new Audio("splash.mp3");
if ( type == "water"){
splash.play();
};
};
答案 0 :(得分:0)
请先修复循环错误...
for (var i = 0; i < 1; i++){
var splash = new Audio("splash.mp3");
if ( type == "water"){
splash.play();
};
};
请告诉我们这是否解决了您的问题?
答案 1 :(得分:0)
您可能需要更改Audio类,或者您必须跟踪它何时停止播放,以便您可以更改布尔值。
所以
if (!splash.isPlaying()) {
splash.play();
}
或
if (!splashPlaying) {
splashPlaying = true;
splash.play()
}
答案 2 :(得分:0)
function isPlaying(audelem) { return !audelem.paused; }
var count = 1;
var splash = new Audio("splash.mp3");
for (var i = 0; i < count; i++){
if ( type == "water"&&!isPlaying(splash )){
splash.play();
break;
};
};
或
var count = 1;
var splash = new Audio("splash.mp3");
for (var i = 0; i < count; i++){
if ( type == "water"&&audelem.paused){
splash.play();
break;
};
};