2017-02-07 21 views
0

Я использовал этот код Rob Miracle из GitHub. Он работает нормально, но моя проблема в том, что всякий раз, когда он достигает 00:00 или отрицательный, он следует моей инструкции перейти на другую сцену, но она все еще обновляется.как остановить таймер, если ниже или равен 0 corona sdk

local secondsLeft = 2 * 60 -- 2 minutes * 60 seconds 

local clockText = display.newText("02:00", 280, 1, native.systemFontBold, 25) 
clockText:setFillColor(1, 0, 0) 

local function updateTime() 
    -- decrement the number of seconds 
    secondsLeft = secondsLeft - 1 

    -- time is tracked in seconds. We need to convert it to minutes and seconds 
    local minutes = math.floor(secondsLeft/60) 
    local seconds = secondsLeft % 60 

    -- make it a string using string format. 
    local timeDisplay = string.format("%02d:%02d", minutes, seconds) 
    clockText.text = timeDisplay 
end 

-- run them timer 
local countDownTimer = timer.performWithDelay(1000, updateTime, secondsLeft) 
+0

Что еще обновление? Ваш вопрос непонятен. –

+0

Я добавил этот код: если timeDisplay <= "00:00", то \t \t \t печати "Game Over" \t \t \t GameOver() \t \t конце концов я попытался отследить время, но вэнь он идет к функции игра закончилась, она все еще уменьшается. – int21h

+0

Я проверяю ваш код. Он работает нормально. Текстовый объект не обновляется после достижения «00:00». – ldurniat

ответ

0

Это звучит, как вам нужно вызвать функцию timer.cancel(). Попробуйте вперед объявляя countDownTimer, так что вы можете использовать его в updateTime():

local countDownTimer 

... 

local function updateTime() 
... 

    if timeDisplay <= "00:00" then 
     timer.cancel(countDownTimer) 
     print "Game Over" 
     GameOver() 
    end 

... 
end 

countDownTimer = timer.performWithDelay(1000, updateTime, secondsLeft) 
+0

ничего не происходит. все еще декрементирует :( – int21h

+1

О, извините, я забыл удалить «local» в countdowntimer, он работал сэр! :) Спасибо :) – int21h