我想使用一個表格來存儲網格,該表格存儲x座標,紋理信息和其他表格等信息。下面是一些用於創建網格代碼:Lua:訪問多維表/數組中的變量
for i = i, n do
local random = math.floor(rainbow.random(1, 13))
self.grid[i] = {
sprite = Labyrinth:make_cell_texture(spritebatch, position_x, position_y, i, random),
y = position_y,
x = position_x,
nav = Cell:get_nav(random)
}
position_x = position_x + 0.09375
end
它在我要創建新表
nav = Cell:get_nav(random)
部分:
if random == 1 then
self.nav = {
north = true,
east = false,
south = false,
west = false,
}
問題是訪問所述變量,來檢查它們是否爲真。我將self.nav
返回到grid[i].nav
,我可以print(self.nav.east)
並獲得true
。
但隨後訪問表格會導致它總是返回nil
,即使我可以打印出表格中有表格。
我試圖用這個循環:
for i = 1, 10 do
if self.grid[i].nav.north and self.grid[i + 10].nav.south then
print("Two sides are touching!")
end
end
還與self.grid[i][4].north
,但無濟於事。
我設置錯誤的方式是?還嘗試將nav
重命名爲[4]
。
我吠叫錯了樹嗎?不是設計成這樣深的桌子?
我看不到任何明顯,將導致此突破,但是在調試這樣的問題,通過使用表格美化打印機的一般變得更加容易; [Serpent](https://github.com/pkulchenko/serpent)是獨立的,[Microlight](https://github.com/stevedonovan/Microlight#strings)和[Penlight](http:// stevedonovan .github.com/Penlight/api/modules/pl.pretty.html)都包含漂亮的漂亮打印機,並且位於LuaRocks上。 – furq 2012-08-01 18:03:45
謝謝你,會檢查出來。我目前剛剛使用Sublime Text,編譯器告訴我爲調試(這不是最優的!)。 – kalligula 2012-08-02 11:20:18
我試了一下,非常感謝。現在我可以真正閱讀我的表格包含的內容!非常感謝! – kalligula 2012-08-02 12:31:28