lua-表维护(与粒子系统有关)
在游戏的每一帧都调用下面的“ 0”功能。如果
Drop
粒子的y值大于160,我想将其从表中删除。问题是我在下面指出的行上出现“试图将数字与nil进行比较”错误:
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
我究竟做错了什么?显然val
是nil,但是我不明白为什么表迭代会首先找到val,因为当y的值大于160时我将其设置为nil。
没有找到相关结果
已邀请:
4 个回复
澳绍能
抬澈帅沮
是
,而是
是
。请参阅以下示例:
另外,当您将
设置为
时,可能没有任何作用(我相信
是副本):
编辑:要从表中删除元素,您需要
:
埃庐
而不是
。如果运行
,则仅将val的本地副本设置为nil,而不是表中的条目。 尝试这个:
扦帽次杏