簡體   English   中英

Corona SDK(LUA)計時器和倒計時

[英]Corona SDK (LUA) timers and countdowns

我有一個這款游戲,每次定時器觸發時,函數都會生成隨機對象。 看起來像這樣:

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 )函數showCountDown大約額外觸發了3次,在spawnShit = 0之后,將觸發timer.cancel(myTimers),這很奇怪,因為我正在取消計時器觸發事件。

你有

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

這意味着,只要countDownNumber大於或等於-1(即任何正數,0和-1),就會進入if塊。 在塊內部,它減少了1,所以最后一個值是-2。

您可能希望>= 1 ,這將使其最后一個值為0:

if countDownNumber >= 1 then
        countDownNumber = countDownNumber -1 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM