Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我似乎不能从一个变量中减去另一个变量_Javascript_Subtraction - Fatal编程技术网

Javascript 我似乎不能从一个变量中减去另一个变量

Javascript 我似乎不能从一个变量中减去另一个变量,javascript,subtraction,Javascript,Subtraction,我正在做一个简单的游戏,我已经把它编码好了,当你点击一个攻击按钮时,它会根据基础和力量生成一个随机数,然后从敌人的生命值中减去,但减去的部分似乎不起作用。它总是输出NaN 这可能与没有明确确定它们是整数有关,但我不确定如何做到这一点 这是最紧迫的问题。您需要从HITDEQUE内的enemyHealth标记中删除var。这将创建一个名为enemyHealth intsead的新变量,用于修改第一个变量 enemyHealth = enemyHealth - parseFloat(attack);

我正在做一个简单的游戏,我已经把它编码好了,当你点击一个攻击按钮时,它会根据基础和力量生成一个随机数,然后从敌人的生命值中减去,但减去的部分似乎不起作用。它总是输出NaN


这可能与没有明确确定它们是整数有关,但我不确定如何做到这一点

这是最紧迫的问题。您需要从HITDEQUE内的enemyHealth标记中删除var。这将创建一个名为enemyHealth intsead的新变量,用于修改第一个变量

enemyHealth = enemyHealth - parseFloat(attack);
此外,你应该在每次呼叫结束时呼叫begin以更新分数。下面是代码的工作版本


这是最紧迫的问题。您需要从HITDEQUE内的enemyHealth标记中删除var。这将创建一个名为enemyHealth intsead的新变量,用于修改第一个变量

enemyHealth = enemyHealth - parseFloat(attack);
此外,你应该在每次呼叫结束时呼叫begin以更新分数。下面是代码的工作版本


因为您在函数中重新定义了enemyHealth变量。删除var以修复它

 function hitEnemy(){
        var attack=Math.floor(Math.random()*20 + strength);
        enemyHealth = enemyHealth - attack;
        document.getElementById('damage').innerHTML = attack;   
        document.getElementById('enemyhealth').innerHTML = enemyHealth;
        }

因为您在函数中重新定义了enemyHealth变量。删除var以修复它

 function hitEnemy(){
        var attack=Math.floor(Math.random()*20 + strength);
        enemyHealth = enemyHealth - attack;
        document.getElementById('damage').innerHTML = attack;   
        document.getElementById('enemyhealth').innerHTML = enemyHealth;
        }

为了补充Jared的回答

var enemyHealth = enemyHealth - attack;
是…的缩写

var enemyHealth;
enemyHealth = enemyHealth - attack;
首先,enemyHealth定义为HITDEY范围内的未定义*。现在,存在两个名为enemyHealth的变量,但内部变量会遮挡外部变量,因此无法引用外部变量。所以,攻击从未定义中减去,生成NaN


*这听起来很荒谬,我知道贾里德的回答中还有一点

var enemyHealth = enemyHealth - attack;
是…的缩写

var enemyHealth;
enemyHealth = enemyHealth - attack;
首先,enemyHealth定义为HITDEY范围内的未定义*。现在,存在两个名为enemyHealth的变量,但内部变量会遮挡外部变量,因此无法引用外部变量。所以,攻击从未定义中减去,生成NaN


*听起来很荒谬,我知道

@user1026779-确保你接受JaredPar的回答:谢谢@用户1026779-确保您接受JaredPar的回答:谢谢