Javascript 如何从像素阵列中绘制地图

Javascript 如何从像素阵列中绘制地图,javascript,html,Javascript,Html,我试图从图像加载贴图,我得到图像上每个像素的十六进制代码,并将其放入贴图[]。world[]将在精灵表上存储精灵数量的1或0或任何数字。如果颜色为8aff00,则它将为草存储0。地图是16乘16像素,这是我的世界大小。当我尝试创建世界数组时,for语句工作正常,没有错误。我知道我有所有的数据,但我函数的这一部分不起作用,它只是在以下for语句之后停止: function createWorld() { for (var y=0; y < worldHeight; y+

我试图从图像加载贴图,我得到图像上每个像素的十六进制代码,并将其放入贴图[]。world[]将在精灵表上存储精灵数量的1或0或任何数字。如果颜色为8aff00,则它将为草存储0。地图是16乘16像素,这是我的世界大小。当我尝试创建世界数组时,for语句工作正常,没有错误。我知道我有所有的数据,但我函数的这一部分不起作用,它只是在以下for语句之后停止:

    function createWorld() {
       for (var y=0; y < worldHeight; y++) {
           for (var x=0; x < worldWidth; x++) {
             if (map[pl] == '#8aff00') world[x][y] = 0;
             if (map[pl] == '#000000') world[x][y] = 1;
             pl+=4;
          }
       }
       alert('about to draw');
       draw();

   }

警报从未被调用。当我显示x和y时,x和y的值从“0,0”变为“1,0”,然后又回到“0,0”。pl是我想要的数组的编号。当我用另一个for语句来处理这个问题时,它就更糟了。代码有什么问题吗?如果您需要更多的代码,请告诉我。

我已经成功地构建了工作正常的代码

现在轮到您根据需要实施它了

worldHeight = 16;
worldWidth = 16;
world = {};
map = ['#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000','#8aff00','#000000']
pl = 0

function draw(){
    console.log(world);
}

function createWorld() {
       for (var y=0; y < worldHeight; y++) {
           for (var x=0; x < worldWidth; x++) {
             if (map[pl] == '#8aff00')
                 world[x] = 0;
                 world[x][y] = 0;
             if (map[pl] == '#000000')
                 world[x] = 0;
                 world[x][y] = 1;
             pl+=4;
          }
       }
       alert('about to draw');
       draw();

}

createWorld();

干杯。

您在哪里定义了worldHeight、worldWidth、world和pl?您可以添加命令console.logx、y、pl、map[pl]、worldHeight、worldWidth;在内部循环的末尾,在大多数浏览器中发布开发工具控制台F12的输出,以获取更多信息…我知道,我正在ipad上使用textastic编程。当我转到createWorld时,world[x][y]返回未定义。不确定是否必须标记你:@KamilW@Loudermilk我希望我能在代码方面帮助你。世界[x][y]是全局变量。不应该是未定义的。也许您只需要在第3行之前添加var。可以在代码的许多地方随意使用console.logworld来查看初始化世界的时间和地点,或者使用Javascript调试器。可能您没有在代码中正确初始化world?在我的draw方法中,world将返回类似以下内容:0、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、0、、、、、、、、、、、、、、、、、、、忘记标记您@KamilW