0

我正在使用下面的代码来删除我正在碰撞的对象,但是它删除了表中的所有对象,我怎样才能将它限制在我正在碰撞的表中的对象上?(所以它只删除一个)

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
4

1 回答 1

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
于 2013-09-13T14:05:48.133 回答