我目前正在制作一个小型滚动画布游戏,我正在尝试实现怪物。我为怪物保留了两个阵列,一个用于x位置,另一个用于y位置。出于某种意外的原因,两个数组都填充了1152个元素,其中两个是预定义的,其他都是“NaN”。
以下是该计划的链接: http://codepen.io/kenshin791011/pen/WpxQmg
(函数monsterMove在按键运行时运行)
var monsterx = [13, 5],
monstery = [41, 42];
function monsterMove() {
for(var i = 0; i < monsterx.length; i++) {
var z = Math.floor(Math.random() * 4);
switch(z) {
case 0:
monsterx[i] -= 1;
break;
case 1:
monstery[i] -= 1;
break;
case 2:
monsterx[i] += 1;
break;
case 3:
monstery[i] += 1;
break;
}
}
}
答案 0 :(得分:1)
您的codepen中JS的以下循环正在更新元素0到monsterx
的{{1}}数组:
cGrid.length
鉴于几乎所有这些索引的第一次for(var i = 0; i < cGrid.length; i++) {
pGridx[i] += g;
monsterx[i] += 1;
}
为monsterx[i]
,undefined
为undefined + 1
,这就是你如何得到一个满{{1}的数组除了以有效数字开头的前两个元素外。
您有一个更新NaN
的类似循环。
(为了将来参考,如果你不确定如何更新变量,第一步是搜索该变量的代码。这就是我所做的就是找到上面的问题。)