如何防止我的法力值变负

时间:2019-05-22 20:31:35

标签: javascript html

因此,当我使用我的技能时,它会从总法术力中消耗10点法力,然后将50点总值加到cookie中,但是如果我再次使用该技能,它将继续获得法术力。我设置了它,所以cookie不会增加,但是我的魔力却持续下降。我如何防止值变成负数。

我还没有尝试过很多,不确定如何预防它

这是我的Javascript代码:

function Bigclick() {
        if (ManaPoints >= 10)
        if (rebirths >=1)    
        cookies = cookies + 50
        ManaPoints = ManaPoints - 10;
        document.getElementById('cookies').innerHTML = cookies;
        document.getElementById("ManaPoints").innerHTML = ManaPoints;
        checkCursor()
}

我希望如果im低于10点法力或0点法力,则该功能不执行任何操作。但实际法力值持续下降http://prntscr.com/ns2d0m

2 个答案:

答案 0 :(得分:3)

这些if仅适用于cookies = cookies + 50。您需要打开一个块并包装取决于这些条件的所有计算,例如:

function Bigclick() {
    if (ManaPoints >= 10 && rebirths >=1) {
        cookies = cookies + 50
        ManaPoints = ManaPoints - 10;
        document.getElementById('cookies').innerHTML = cookies;
        document.getElementById("ManaPoints").innerHTML = ManaPoints;
    }
    checkCursor()
}

不确定上面的代码是否正是您所需要的,仅是示例。

最初情况如何令人担忧的另一个示例:

var truthy = false;

if (truthy)
if (!!truthy)
console.log("truthy");
console.log("not truthy");

更新:

let button = document.getElementById("use-mana"),
    manaQty = document.getElementById("mana-qty");
    
const manaCost = 10;
    
button.addEventListener("click", () =>
{
  let qty = Number(manaQty.innerText);
  
  if (qty >= manaCost)
  {
    qty-= manaCost;
    manaQty.innerText = qty;
  }
  else 
  {
    window.alert("Not enough mana!");
  }
});
<div id="mana-qty">29</div>
<button id="use-mana">Use Mana</button>

答案 1 :(得分:1)

通常-如果要避免数字在减法后变为负数,则必须检查如果减去特定值,该数字是否小于0。如果将其设置为零,则不减去所需的数量。

if (ManaPoints - 10 < 0) {
  ManaPoints = 0;
} else {
  ManaPoints -= 10;
}