2013-08-26 116 views
2

我试图让一些0和1内多维表,但我不能让它的工作。我搜遍了很多帖子,但我找不到解决它的方法。这是代码:错误:main.lua:22:尝试索引字段'?' (一个零值)

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 
+0

顺便说一下,你不需要在这个细节中初始化generatedTerrain(它只需要初始化为空表{}),也不需要x和y。实际上,当局部值(如for循环将隐式创建)就足以使Lua创建x和y作为全局值时。 –

回答

7

你已经倒在你的表中的X和Y指数,你已经创建里面67个空表,但在接下来的循环中,您要访问从1到89

+0

我想要做的是得到表格67x89。但是我从未使用过多维表格...... – user2631771

2

正如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) --<-- changed order or x,y 
    end 
    end 
end 
mapGen() 
相关问题