0

使用 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 )

我在这里有什么遗漏吗?

4

1 回答 1

0

不确定您在这里到底要问什么,但是如果您的 transition.to 不起作用,请检查您是否在这样做时杀死了对 monkeySet[i] 的唯一引用

table.remove(monkeySet, i)
于 2013-03-09T02:46:56.723 回答