我有这个游戏,每次定时器触发时,函数会产生随机对象。它看起来像这样:
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)被触发,这很奇怪,因为我取消了触发事件的计时器。
答案 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