错误:main.lua:22:尝试对字段“?”(一个空值)进行索引

我试图在多维表中放置一些 0 和 1,但我无法让它工作。我搜索了很多帖子,但我找不到解决方法。这是代码:

generatedTerrain={
{0,0,0,0,0},
{0,0,0,0,0}
}
x=0
y=0

function mapGen()
    for y=1,67 do
        generatedTerrain[y]={}
        for x=1,89 do
            generatedTerrain[x][y] = math.random(0,1) --This doesn't work
        end
    end
end
mapGen()
点赞
用户2099889
用户2099889

你在表格中翻转了 x 和 y 的下标,因此你在其中创建了 67 个空表,在下一个循环中,你试图从 1 到 89 进行访问。

2013-08-26 19:46:36
用户1442917
用户1442917

正如Daniel所说,当您存储/访问元素时,需要更改xy索引的顺序。这应该可以工作:

local generatedTerrain={}
function mapGen()
  for y=1,67 do
    generatedTerrain[y]={}
    for x=1,89 do
      generatedTerrain[y][x] = math.random(0,1) --<-- 更改了 x 和 y 的顺序
    end
  end
end
mapGen()
2013-08-26 22:58:47