我正在创建一个简单的矩阵,如下所示:
for x = 0, 50 do
current_level[x] = {}
for y = 0, 50 do
current_level[x][y] = grabTile();
end
end
在那之后,我尝试阅读它,但是不知何故x现在是一个对象而不是数字,而y似乎还不错!
我如何尝试阅读它:
for x,value in pairs(self.map) do
if value == ni then print("none"); return;end;
for y,object in pairs(value) do
if object == ni then print("none"); return;end;
object:render(x,y); -- Here x is an object
end
结束
我是刚接触lua的人,所以我可能正在做一些明显非常错误的事情。 我将如何进行这项工作?
我为x得到的东西是:表:0x07c8d530 在整个迭代过程中,该值保持不变
答案 0 :(得分:1)
object:render(x,y); -这里x是一个物体
此行使用冒号语法。它是object.render(object,x,y)
调用的语法糖。
因此,您的render()
函数必须具有第一个self
参数,该参数必须显式声明为function render(self, x, y)
或隐式声明另一个语法糖:function object:render(x,y)
。
不相关的提示。如果将第一个循环转换为:
for x = 0, 50 do
local row = {}
for y = 0, 50 do
row[y] = grabTile();
end
current_level[x] = row
end