如何在Lua中停止得分计时器当...

好的,这是我的当前分数 - 计时器

local scoreTxt = display.newText( "Score: 0", 0, 0, "Helvetica", 40 )
scoreTxt:setReferencePoint(display.TopLeftReferencePoint)
scoreTxt.x = display.screenOriginX + 10
scoreTxt.y = display.screenOriginY + 32

local function updateScore()
     score = score + 20
     scoreText.text = string.format("Score: %d", score)
end

local scoreTimer = timer.performWithDelay(1000, updateScore, 0)

我希望当

function explode()
    exp.x = bird.x
    exp.y = bird.y
    exp.isVisible = true
    exp:play()
    bird.isVisible = false
    timer.performWithDelay(1500, gameOver, 1)

之后,计时器能够暂停。然后游戏将重定向到您死了的画面,在那里分数应该是可见的,但我希望在

function start(event)
    if event.phase == "began" then
        storyboard.gotoScene("game", "fade", 50)
    end
end

之后将分数重置为0 。那么,我该怎么做呢?

点赞
用户2679394
用户2679394

代码不够清晰,无法确定正在发生什么,但如果您想忽略计时器,请按以下方式操作:

EnableScoreTimer = true -- 可以使它成为全局,这样您也可以从其他文件调用它。

local function updateScore()
     if not EnableScoreTimer then return end
     score = score + 20
     scoreText.text = string.format("Score: %d", score)
end

local scoreTimer = timer.performWithDelay(1000, updateScore, 0)

这种方式创建了一个布尔值来检查何时禁用定时器,它不会结束定时器,而是使其不运行其他操作。每当您想关闭积分计时器时,只需使用简单的 true/false 检查即可打开/关闭它。

function explode()
    EnableScoreTimer = false
2013-09-09 17:22:40
用户1605727
用户1605727
score = 0 -- 每次创建游戏场景时,需要将分数设置为0
local scoreTxt = display.newText( "Score: 0", 0, 0, "Helvetica", 40 )
scoreTxt:setReferencePoint(display.TopLeftReferencePoint)
scoreTxt.x = display.screenOriginX + 10
scoreTxt.y = display.screenOriginY + 32

local function updateScore() -- 更新分数
    score = score + 20
    scoreText.text = string.format("Score: %d", score)
end

local scoreTimer = timer.performWithDelay(1000, updateScore, 0) -- 设置计时器

function explode()
    timer.cancel(scoreTimer) -- 取消计时器并最终停止
    ...
end
2013-09-10 02:00:25