0
votes

Using Corona, i would like to move object when i delete it from a table. The problem is that i iterate the table on every frame. When x > WIDTH - 50 i would like for the monkey to stop moving in a sinuswave form and jump into the removeMonkeys function.

My Code:

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 )

Is there anything I'm missing here?

1

1 Answers

0
votes

Not sure what exactly you're asking here, but if your transition.to doesn't work check that you aren't you killing the only reference to monkeySet[i] when you do

table.remove(monkeySet, i)