Изменение звукового эффекта на функцию при изменении переменной - PullRequest
0 голосов
/ 30 апреля 2019

Я пишу домашнее задание для класса 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;
  }

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Поместите вызов play в оператор if, чтобы он воспроизводился только в том случае, если оператор истинен:

function shoot() {
  if (currentAmmo > 0) {
    currentAmmo--;
    document.getElementById("shoot").play();
  }
}
0 голосов
/ 30 апреля 2019

Вам просто нужно переместить команду воспроизведения в условие if.

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

  updatescreen();
...