预期的表格。得到了空值错误?

在下面的代码中:

for k, smoke in pairs(self.smokes) do
     smoke.time = smoke.time - dt
     if smoke.time <= 0 then
       table.remove( self.smokes, k )
     end
   end

它告诉我 self.smokes 是空值,尽管在代码后面我声明了:

function ent:Smoke()
  table.insert( self.smokes, {time = 3, x = self.x, y = self.y} )
end

有人知道我的错误吗?谢谢大家!

点赞
用户5458566
用户5458566

因为函数 ent:Smoke 在代码后面运行。 将其放在顶部,它就能正常工作。

2015-10-18 03:23:45
用户173806
用户173806

也许你想要这个:

function ent:Smoke()
  self.smokes = {time = 3, x = self.x, y = self.y}
end

同时你需要修改另外一段代码:

if self.smokes then
  self.smokes.time = self.smokes.time - dt
  if self.smoke.time <= 0 then
    self.smokes = nil
  end
end

table.insert() 函数用于向数组类型的表中插入元素。

2015-10-19 20:05:46