如何在 Corona SDK 中生成多个对象,并在每20秒增加对象数量?

我很新,已经查过我的问题但没有找到答案,我有一些像气球一样的物体,从屏幕底部漂浮到顶部,我的问题是 spawnBallons 函数只被调用一次,因此只有一个对象出现,我想多次调用函数以生成多个对象,并在每 20 秒增加生成的对象数量?

    function spwanBalloons()

    local allBalloons = {"green_balloon2.png", "red_balloon.png"}
    ballons = display.newImage(allBalloons[math.random(#allBalloons)])
    ballons.x = math.random(display.contentWidth)
    ballons.y = display.contentHeight + 60

    transition.to( ballons, { time=math.random(3500-speedBump, 4500-speedBump), y=-100} )
    speedBump = speedBump + 15

end

function startGame()
    scoreText = display.newText( "Score: 0", 0, 0, "Helvetica", 22 )
    scoreText.x = centerX
    scoreText.y = display.screenOriginY + 10
    spwanBalloons()

end

我尝试了 timer.performWithDelay( 500, spwanBalloons, 50 ) 但它只是在半秒钟内生成 50 个对象,我想生成随机数量的对象,直到我让它停止?

点赞
用户3585949
用户3585949

这个代码应该每半秒钟生成一个气球,持续20秒钟,然后每半秒钟生成2个气球,以此类推。 您可以根据需要使用 stopSpawnIncrease()stopSpawn() 来停止计时器。

local spawnIncreaseTimer
local spawnNumber=0
local function spawnIncrease()
    spawnNumber=spawnNumber+1
    spawnIncreaseTimer = timer.performWithDelay( 20000, spawnIncrease)
end

function stopSpawnIncrease()
    timer.cancel( spawnIncreaseTimer )
end

local spawnTimer
function spwanBalloons()
    for i=1,spawnNumber do
        local allBalloons = {"green_balloon2.png", "red_balloon.png"}
        ballons = display.newImage(allBalloons[math.random(#allBalloons)])
        ballons.x = math.random(display.contentWidth)
        ballons.y = display.contentHeight + 60

        transition.to( ballons, { time=math.random(3500-speedBump, 4500-speedBump), y=-100} )
        speedBump = speedBump + 15
    end
    spawnTimer = timer.performWithDelay( 500, spwanBalloons )
end

function stopSpawnTimer()
    timer.cancel( spawnTimer )
end

function startGame()
    scoreText = display.newText( "Score: 0", 0, 0, "Helvetica", 22 )
    scoreText.x = centerX
    scoreText.y = display.screenOriginY + 10
    spawnIncrease() -- 第一次调用将从0变为1并启动计时器
    spwanBalloons()
end
2014-05-08 22:31:36