Javascript 从一个变量中提取一个随机数,存储这个新值,然后重复这个过程直到它达到0?
通过不断降低随机数,试图使hp条从200降到0,但我只能设法存储一次新值。然后,如果我点击调用函数的按钮,它会再次从200中减去,而不是之前存储的值。我该如何解决这个问题?在这里发疯 以下是我的javascript:Javascript 从一个变量中提取一个随机数,存储这个新值,然后重复这个过程直到它达到0?,javascript,Javascript,通过不断降低随机数,试图使hp条从200降到0,但我只能设法存储一次新值。然后,如果我点击调用函数的按钮,它会再次从200中减去,而不是之前存储的值。我该如何解决这个问题?在这里发疯 以下是我的javascript: window.onload = function() { document.getElementById("hpLeft1").innerHTML= "200/200"; document.getElementById("hpLeft2").innerHTML =
window.onload = function() {
document.getElementById("hpLeft1").innerHTML= "200/200";
document.getElementById("hpLeft2").innerHTML = "200/200";
};
var myHit = Math.floor(Math.random() * 40 + 1);
var dragonHit = Math.floor(Math.random() * 40 + 1);
var playerHitpoints, dragonHitpoints = 200;
function play() {
var myHit = Math.floor(Math.random() * 40 + 1);
var dragonHit = Math.floor(Math.random() * 40 + 1);
dragonHitpoints -= dragonHit;
playerHitpoints -= myHit;
document.getElementById("DragonHit").innerHTML = dragonHit;
document.getElementById("MyHit").innerHTML = myHit;
document.getElementById("hpLeft1").innerHTML = dragonHitpoints + "/200";
document.getElementById("hpLeft2").innerHTML = playerHitpoints + "/200";
}
您想更新
dragonHitpoints
和playerHitpoints
的值
function play() {
var myHit = Math.floor(Math.random() * 40 + 1);
var dragonHit = Math.floor(Math.random() * 40 + 1);
// Update the dragon's HP
dragonHitpoints -= dragonHit;
// Update the player's HP
playerHitpoints -= myHit;
document.getElementById("DragonHit").innerHTML = dragonHit;
document.getElementById("MyHit").innerHTML = myHit;
document.getElementById("hpLeft1").innerHTML = dragonHitpoints + "/200";
document.getElementById("hpLeft2").innerHTML = playerHitpoints + "/200";
}
您的代码中有一个问题。您正在声明局部变量,这些变量将覆盖外部变量:
function play() {
var myHit = Math.floor(Math.random() * 40 + 1);
var dragonHit = Math.floor(Math.random() * 40 + 1);
这应该是
function play() {
myHit = Math.floor(Math.random() * 40 + 1);
dragonHit = Math.floor(Math.random() * 40 + 1);
从外部重复使用变量。减法在哪里?@Barmar'var dragonHit=Math.floor(Math.random()*40+1);'需要从“var dragonHitpoints=200;”中减去并存储到“var storeDragon”中,这是我的观点。如果这是你想做的,为什么不减去它呢?因为我真的很笨,没有想到要做什么显而易见的事情haha@Barmar看看我更新的代码,为什么playerHitpoints显示为NaN而dragonHitpoints不显示?这些变量不需要重用。我应该惩罚自己,尝试了所有的高级解决方案,但没有明显的简单解决方案lol。。干杯