2017-01-30 8 views
0

Корона SDK таймер countUp ускоряется при нажатии кнопки? У меня есть 15 вопроса в моей игре, и каждый раз, когда ответ является касайтесь Countup таймера ускоряет каждый раз он идет на другой вопрос ..Корона SDK таймер countUp ускоряется при нажатии кнопки?

Вот мое сенсорной кнопке событие

buttonTouched = function(event) 
    local t = event.target 
    local id = t.id 

    if event.phase == "began" and touchEnabled == true then 
     display.getCurrentStage():setFocus(t) 
     t.isFocus = true 

     if id == "answer" then 
      t.alpha = 0.6 
     else 
      t.xScale = 0.9 
      t.yScale = 0.9 
     end 

    elseif t.isFocus then 
     if event.phase == "ended" then 
      display.getCurrentStage():setFocus(nil) 
      t.isFocus = false 

      if id == "answer" then 
       t.alpha = 1 
      else 
       t.xScale = 1 
       t.yScale = 1 
      end 

      -- Check that touch finished in the button. 
      local b = t.contentBounds 
      if event.x >= b.xMin and event.x <= b.xMax and event.y >= b.yMin and event.y <= b.yMax then     
       utils.playSound("select") 

       if id == "answer" then 
        if timer_trans ~= nil then 
         transition.cancel(timer_trans) 
         timer_trans = nil 
        end 

        if result_trans ~= nil then 
         transition.cancel(result_trans) 
         result_trans = nil 
        end 

        if label_result ~= nil then 
         display.remove(label_result) 
         label_result = nil 
        end 

        -- Show some text that we can transition 
        label_result = display.newText({parent=uiGroup, text="", font=easyFont, fontSize=75}) 
        label_result.anchorX = 0 
        label_result.x = label_question.x - 540 
        label_result.y = label_question.y + 400 

        if t.index == questions[onQuestion].answer then 
         label_result.text = "Correct!" 
         label_result:setFillColor(0,0.6,0) 
         utils.playSound("score") 
         updateScore(1) 

        else 
         label_result.text = "Incorrect..." 
         label_result:setFillColor(0.8,0,0) 
         utils.playSound("incorrect") 
        end 

        result_trans = transition.to(label_result, {time=1600, alpha=0.1, y=label_result.y-18,tag="transTag", onComplete=function() 
         display.remove(label_result) 
         label_result = nil 
        end}) 

        -- Now create the next quesiton 
        createQuestion() 
       end 
      end 
     end 
    end 
    return true 
end 

function startTimer() 
    clockTimer = timer.performWithDelay(1000,doCountUp,gameTime) 
end 

function doCountUp() 

    currentTime = countUpText.text 
    currentTime = currentTime +1 
    countUpText.text = currentTime 
    if(currentTime == 0) then 
     countUpText.text = currentTime 
     startTimer() 
    end 
end 
+0

Я не могу найти в таймере кода с именем 'countUp'. – ldurniat

+0

my currentTime = currentTime +1 для countUp, я уже отредактировал его, моя ошибка lol .. –

ответ

1

Таймер " ускорение ", потому что вместо сброса текущего таймера вы создаете новый таймер при нажатии на вопрос.

Вы называете StartTimer() каждый раз, когда вы создаете новый вопрос (если вы установите countUpText.text = "-1" в createQuestion(). Каждый раз, когда вы касаетесь ответа вы создаете другой таймер для обновления countUpText.text. У вас есть несколько таймеров обновляя текст, потому что вы дон «т удалить ранее созданные таймеры вы просто создавать новые

Самый простой способ исправить это, чтобы отменить таймер и начать новый, если таймер был создан:.

local clockTimer 

function startTimer() 
    if (clockTimer ~= nil) then 
     timer.cancel(clockTimer) 
     clockTimer = nil 
    end 

    clockTimer = timer.performWithDelay(1000,doCountUp,gameTime) 
end 

Таким образом обновить ваш startTimer(), а затем добавьте local clockTimer в начало вашего файла Lua.

+0

Спасибо Дэвиду, я уже сделал то же самое с buttonTouched. Он больше не ускоряется. Но дело в том, что если вы постоянно используете buttonTouched быстро, «коснитесь» самой паузы таймера и больше не продолжайте. , –

 Смежные вопросы

  • Нет связанных вопросов^_^