代码似乎没有更新全局变量

时间:2013-12-19 13:33:07

标签: javascript

出于某些原因doesItHitdoTheyHit似乎总是在执行,而dealDamage对全局变量没有任何作用。

var hitPercentage=Math.floor(Math.random() * 101) + 1
function doesItHit(){
    if(toHit * hitPercentage >= enemyEvasion){itHits = true}
    else("You miss.")
}

function doTheyHit(){
    if(enemyToHit * (Math.floor(Math.random() * 101) + 1) >= evasion){enemyToHit = true}}

function dealDamage(){enemyHealth= enemyHealth-lasers;}
function recieveDamage(){health= health - enemyLasers;}

function playerTurn(){
        doesItHit();
        if (itHits===true){
        dealDamage()
        console.log("You deal "+ lasers + " points of damage to the enemy.")
        lasersFired=false

        }    
}

2 个答案:

答案 0 :(得分:5)

这是因为你的代码实际上没有改变任何东西。在dealDamage中你有一个你不想要的额外分号。

试试这个:

function dealDamage(){
    enemyHealth = enemyHealth - lasers;
}

(假设您要从lasers中减去enemyHealth的值)

另一方面,你的recieveDamage功能也不会做任何事情,但是不清楚你打算做什么,所以我不能提出任何建议。

答案 1 :(得分:0)

你没有形成正确的表达,所以你的dealDamge永远不会因错误的表达而造成伤害:

   enemyHealth= enemyHealth;-lasers;

你这个:

   enemyHealth= enemyHealth-lasers;