2014-05-08 42 views
0

我很新,並查找了我的問題無濟於事,我有像氣球從屏幕底部浮動到頂部的對象,我的問題是spawnBallons函數只被調用一次,所以只有一個對象出現我想多次調用該函數以產生多個對象並增加每20秒產生的對象數量?Corona Sdk如何產生多個對象並每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個對象在半秒,我想直到我告訴它停止產卵對象的隨機量?

回答

1

這應該產卵1個氣球每半秒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() -- first call brings from 0 to 1 and starts timer 
    spwanBalloons() 
end 
相關問題