[英]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.