从表格中删除后,Corona的transition.to

我想使用Corona,在从表中删除对象时移动它。问题在于我在每个帧上迭代表。当x > WIDTH - 50时,我希望猴子以正弦波形式停止移动并跳入removeMonkeys函数。

我的代码:

local function removeMonkeys(obj)
    transition.to(obj, {time = 1500, y = 2*HEIGHT/3, onComplete = obj:removeSelf()})
    numMonkeys = numMonkeys - 1;
end
function startGame()
    timer.performWithDelay(500, spawn, maxNumMonkeys)
    local function onEveryFrame( event )
    for i = 1, #monkeySet do
        if(monkeySet[i] ~= nil) then
            monkeySet[i].x = monkeySet[i].x + 2
            monkeySet[i].y = monkeySet[i].y + math.sin(monkeySet[i].x/monkeySpeed)*Amplitude/5
            if(monkeySet[i].x > WIDTH -50) then
                removeMonkeys(monkeySet[i])
                table.remove(monkeySet, i)
                print(#monkeySet)
            end
        end
    end
end
Runtime:addEventListener( "enterFrame", onEveryFrame )

我有什么遗漏的地方吗?

点赞
用户1133557
用户1133557

我不确定你在这里到底在问什么,但如果你的 transition.to 不起作用,请检查你是否在执行下面操作时杀死了对 monkeySet[i] 的唯一引用:

table.remove(monkeySet, i)
2013-03-09 02:46:56