Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 世界正在回归未知_Javascript_Html - Fatal编程技术网

Javascript 世界正在回归未知

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 &

我从图像中获取一个像素阵列,并将其存储到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 < 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]=[];这似乎是一个更好的开始。