Corona SDK(LUA)计时器和倒计时

时间:2014-04-01 14:28:34

标签: timer lua corona

我有这个游戏,每次定时器触发时,函数会产生随机对象。它看起来像这样:

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 个答案:

答案 0 :(得分:1)

你有

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

这意味着只要if大于或等于-1,即任何正数,0和-1,就会输入countDownNumber块。在块内,它减少1,所以最后一个值为-2。

您可能需要>= 1,这将使其最后一个值为0:

if countDownNumber >= 1 then
        countDownNumber = countDownNumber -1