下面的update()
函数在游戏的每一帧上都会被调用。如果Drop
粒子的y值大于160,我想将其从表中删除。问题是,我得到了“尝试将数字与零进行比较”的错误,如下所示:
local particles = {};
function update()
local num = math.random(1,10);
if(num < 4) then
local drop = Drop.new()
table.insert ( particles, drop );
end
for i,val in ipairs(particles) do
if(val.y > 160) then --ERROR attempt to compare number with nil
val:removeSelf(); --removeSelf() is Corona function that removes the display object from the screen
val = nil;
end
end
end
我做错了什么?显然,<code>val</code>是nil,但我不明白为什么表迭代会首先找到val,因为当它的y值大于160时,我将其设置为nil。