Javascript 世界正在回归未知
我从图像中获取一个像素阵列,并将其存储到map[]。 然后它将测试十六进制代码中的颜色,然后返回sprite的指定数字。 所以现在草地是0,人行道是1 第一部分工作正常,但当我进入draw时,[]var返回undefined,但在for语句的createWorld中,它返回0或1 这就是我所拥有的:Javascript 世界正在回归未知,javascript,html,Javascript,Html,我从图像中获取一个像素阵列,并将其存储到map[]。 然后它将测试十六进制代码中的颜色,然后返回sprite的指定数字。 所以现在草地是0,人行道是1 第一部分工作正常,但当我进入draw时,[]var返回undefined,但在for语句的createWorld中,它返回0或1 这就是我所拥有的: function createWorld() { for (var y = 0; y < worldHeight; y++) { for (var x = 0; x &
function createWorld() {
for (var y = 0; y < worldHeight; y++) {
for (var x = 0; x < worldWidth; x++) {
if (map[pl] == '#8aff00') {
world[x] = [];
world[x][y] = 0;
/*alert(x + ', ' + y + ', ' +'green' + ', '
+ map[pl] + ', ' + world[x] + ',' + world[x][y]);*/
}
if (map[pl] == '#000000') {
world[x] = [];
world[x][y] = 1;
/*alert(x + ', ' + y + ', ' +'black' + ', '
+ map[pl] + ', ' + world[x][y]);*/
}
pl += 4;
}
}
draw();
}
function draw() {
if (!spritesheetLoaded) return;
ctx.fillStyle = '#000000';
ctx.fillRect(0, 0, canvas.width, canvas.height);
for (var y = 0; y < worldHeight; y++) {
for (var x = 0; x < worldWidth; x++) {
switch (world[x][y]) {
case 1:
ctx.drawImage(spritesheet,
sidewalk.srcX * tileWidth, sidewalk.srcY * tileHeight,
tileWidth, tileHeight, x * tileWidth, y * tileHeight,
tileWidth, tileHeight);
break;
default:
ctx.drawImage(spritesheet,
grass.srcX * tileWidth, grass.srcY * tileHeight,
tileWidth, tileHeight, x * tileWidth, y * tileHeight,
tileWidth, tileHeight);
break;
}
}
}
}
当我发布它时,间距有点混乱。对不起。你把var world=[];?世界是未定义的还是世界[x][y]未定义的?在许多情况下,后者肯定是未定义的。世界确实似乎是未定义的。如果!世界[x]世界[x]=[];这似乎是一个更好的开始。