遍历矩阵

时间:2018-10-15 20:23:44

标签: lua

我正在创建一个简单的矩阵,如下所示:

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 在整个迭代过程中,该值保持不变

1 个答案:

答案 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
相关问题