Приведенная ниже функция update()
вызывается для каждого кадра игры. Если частица 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
равно нулю, но я не понимаю, почему итерация таблицы находит val в первую очередь, поскольку я установил его равным нулю, когда его значение y становится больше 160.