【发布时间】:2012-07-30 15:32:38
【问题描述】:
我正在尝试使用一个表格制作一个网格,该表格存储诸如 x & y 坐标、纹理信息和另一个表格等信息。下面是一些用于创建网格的代码:
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]。
我是不是找错树了?桌子不是设计得这么深吗?
【问题讨论】:
-
我看不出有什么明显的东西会导致它中断,但是使用 table 漂亮打印机通常可以更容易地调试这样的问题; Serpent 是独立的,Microlight 和 Penlight 都包含不错的漂亮打印机,并且都在 LuaRocks 上。
-
谢谢,会去看看。我目前一直在使用 Sublime Text,编译器告诉我调试(这不是最佳的!)。
-
我试过了,非常感谢。现在我可以真正阅读我的表格包含的内容了!非常感谢!
标签: multidimensional-array lua lua-table