Arrays 错误:main.lua:22:尝试索引字段'';(零值)
我试图在多维表中获取一些0和1,但无法使其工作。我已经搜索了很多帖子,但我找不到解决的办法。代码如下:Arrays 错误:main.lua:22:尝试索引字段'';(零值),arrays,lua,lua-table,Arrays,Lua,Lua Table,我试图在多维表中获取一些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
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()
end
您已经反转了表中的x和y索引,因此在其中创建了67个空表,但是在下一个循环中,您尝试从1访问到89,正如Daniel所说,在存储/访问元素时,您需要更改
x
和y
索引的顺序。这应该起作用:
local generatedTerrain={}
function mapGen()
for y=1,67 do
generatedTerrain[y]={}
for x=1,89 do
generatedTerrain[y][x] = math.random(0,1) --<-- changed order or x,y
end
end
end
mapGen()
localgeneratedterrain={}
函数mapGen()
对于y=1,67 do
generatedTerrain[y]={}
对于x=1,89 do
generatedTerrain[y][x]=math.random(0,1)--我要做的是得到表67x89。但是我以前从未使用过多维表……顺便说一下,您不需要在这个细节中初始化generatedTerrain(初始化为空表{})也不需要x和y。事实上,当局部值(如for循环隐式创建)足够时,您正在使Lua创建x和y作为全局值。