我试图制作一个基于小文本的RPG游戏,但是我遇到了js中的数组然后我遇到了问题,我没有通过使用i而不是0来增加索引号,如myArray[i]
我做了一个jsfiddle所以你们可以看到我的意思。
当你按下按钮直到你变暖,它应该将i增加到2,但它不会,但仍然伴随着变暖并增加攻击变量。
答案 0 :(得分:1)
这是您的.tar.gz
功能:
attackUp
请注意,您的function attackUp(){
var i = 0;
var attackCost = xpforlevel[i];
if (attackCost < attackxp) {
alert("WARMING!");
attack++;
document.getElementById('attack').innerHTML = attack;
i++;
document.getElementById('i').innerHTML = i;
}
}
语句确实没有意义(因为每次调用var i = 0
时,attackUp
都会在开始时重置为i
。要解决此问题,请从函数中删除此= 0
语句并放入JS代码的开头:
var i = 0
此外,您的功能只会更新var i = 0;
var attackxp = 0;
var attack = 1;
,如果 i
,否则它将不会更改任何内容。您需要将attackCost < attackxp
语句放在if块之外,如下所示:
i++;
答案 1 :(得分:0)
由于您的i是本地变量,因此每次调用attackUp()时它都会启动为0。你应该把它放在attackxp和攻击之外。
有关JavaScript中变量范围的详细信息,请参阅w3schools或this question。