从表中删除/删除一个对象

时间:2013-09-13 13:39:51

标签: lua corona lua-table

我正在使用下面的代码删除我正在碰撞的对象,但是它删除了表中的所有对象,我怎么能将这个对应于我正在碰撞的表中的对象? (所以它只删除一个)

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

1 个答案:

答案 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