0

我正在为一个 JS 课写作业,老师希望我们在开火时有武器声音,但在没有弹药时停止发出声音。当枪开火时我有声音效果,但是当用 0 弹药点击时它会继续发出声音。

我尝试执行 else{} 函数,但这会破坏浏览器中的“弹药显示”,并且声音会继续播放。

HTML:

<input type="button" value="Heal" class="shoot" onclick="shoot();">
<audio id="heal" src="sound/heal.mp3">

JS:从最多6发开始显示弹药,有6发备用,每次发射都会倒计时。

function shoot() {
  if (currentAmmo > 0) {
    currentAmmo--;
  }
  var shoot = document.getElementById("shoot");
  shoot.play();
  updatescreen();

  function updatescreen() {
    document.getElementById("total-ammo").innerHTML = "Bullets in Gun:</br>" + totalAmmo;
    document.getElementById("current-ammo").innerHTML = "Reload Ammo:</br>" + currentAmmo;
  }
4

2 回答 2

0

您只需要在 if 条件内移动 play 命令。

  if (currentAmmo > 0) {
    currentAmmo--;
  var shoot = document.getElementById("shoot");
  shoot.play();
  }

  updatescreen();
于 2019-04-30T02:53:43.090 回答
0

play调用放在您的if语句中,因此仅在语句为真时才播放:

function shoot() {
  if (currentAmmo > 0) {
    currentAmmo--;
    document.getElementById("shoot").play();
  }
}
于 2019-04-30T02:56:43.203 回答