0

コロナを使用して、テーブルからオブジェクトを削除するときにオブジェクトを移動したいと思います。問題は、すべてのフレームでテーブルを反復処理することです。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 に答える