2014-04-01 62 views
1

我有這個遊戲,每次定時器觸發時,函數會產生隨機對象。它看起來像這樣:Corona SDK(LUA)定時器和倒計時器

function showCountDown (event) 
    -- Condition to show and hide countdown 
    if countDownNumber == 0 then 
     spawnShit = 0 
     timer.cancel(timerSpawn) 
     timer.cancel(countdownTimer) 
     print('NO MORE SPAAAAAAAAAAAAAAAWWNS') 
    end 

    if countDownNumber >= -1 then 
     countDownNumber = countDownNumber -1 
     countDownText.text = countDownNumber 
     spawnShit = 1 
    end 

    if score == nil then 
     score = 0 
    end 

    return true 
end 

問題是計時器堅持停止-2而不是0,這是相當令人沮喪。 任何人都可以看到我做錯了什麼?也許你有更好的方法來創建觸發不同事件的倒數計時器(停止產卵對象,開始贏/輸/暫停屏幕等)。

此外,它似乎(從測試期間看在控制檯)功能showCountDown觸發約3倍多,在spawnShit = 0後,timer.cancel(myTimers)被解僱了,因爲我取消觸發事件定時器這是奇怪的。

回答

1

你有

if countDownNumber >= -1 then 
    countDownNumber = countDownNumber - 1 

這意味着if塊將在countDownNumber較大或e等於-1,即任何正數,0和-1。在塊內部,它減少1,所以最後的值將是-2。

你可能想>= 1,這將使得其最後的值0:

if countDownNumber >= 1 then 
     countDownNumber = countDownNumber -1 
+0

嘛simpel。我只是想知道如果我坐着我大於或等於-1或0它會工作,但設置爲1就像一個魅力工作! – MNDevelopments