2013-08-26 144 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() 
相關問題