0

下のコードを使用して、衝突しているオブジェクトを削除していますが、テーブル内のすべてのオブジェクトを削除しています。衝突しているテーブル内のオブジェクトにこれをどのように適用できますか? (したがって、1つだけを削除します)

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か?

1 つのオブジェクトを削除した後にループを終了したいだけだと思われます。その場合は、ループを中断する必要があります。

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 に答える