这是我当前的代码:JSFiddle
在第 36 行:tempX = x + k - seedSeparation / 2;
给出错误。如果我更改tempX
为x
,k
或者seedSeparation / 2
它有效。
代码摘录:
var mapX = 1000,
mapY = mapX,
seedLess = 3,
seedSeparation = 32, //Even number
canSeed, tempX, tempY,
x, y, seedNum = Math.round(((mapX + mapY) / 2) / seedLess);
var map = [];
for (i = 0; i <= mapX; i++){
map[i] = [];
for (k = 0; k <= mapY; k++){
map[i][k] = 0;
}
}
x = Math.floor((Math.random()*mapX)+1);
y = Math.floor((Math.random()*mapY)+1);
for (l = 0; l <= seedSeparation; l++){
for (k = 0; k <= seedSeparation; k++){
tempX = x + k - seedSeparation / 2; //Here lies the problem
tempY = y + l - seedSeparation / 2;
if(tempX >= 0 || tempY >= 0){
if(map[tempX][tempY]){
canSeed = false;
}
}
}
}
这里有什么问题?为什么这个计算会给我一个错误?