我正在使用下面的代码删除我正在碰撞的对象,但是它删除了表中的所有对象,我怎么能将这个对应于我正在碰撞的表中的对象? (所以它只删除一个)
for i = #badC1T, 1, -1 do
if badC1T[i] ~= nil then
local function dellBadC1T()
if badC1T[i] ~= nil then
badC1T[i]:removeSelf()
badC1T[i] = nil
end
end
transition.to( badC1T[i], { time=100, alpha=0, onComplete = dellBadC1T} )
end
end
答案 0 :(得分:1)
我不知道您的代码是如何工作的,但是假设循环是反向的,那么您正在与表中不是nil
的最后一个进行协作的对象?
我怀疑你只想在删除一个对象后退出循环,在这种情况下你只需要打破循环:
for i = #badC1T, 1, -1 do
if badC1T[i] ~= nil then
local function dellBadC1T()
if badC1T[i] ~= nil then
badC1T[i]:removeSelf()
badC1T[i] = nil
end
end
transition.to( badC1T[i], { time=100, alpha=0, onComplete = dellBadC1T} )
break -- <= just add this
end
end