Corona SDK: Lua 内存泄漏。

我正在使用CoronaSDK(Lua)制作一个简单的应用,但是我有一些问题:

  • 我想要一个分数计算器,但是自从我制作它以来,我的应用程序一直崩溃。
  • 我无法想出如何制作“好”的分数计数器。 非常感激任何帮助。:)

代码:

function points(num)
    tmr = timer.performWithDelay(1000, points, 0)
    num = 5
    score = 2
    score = score + num
    scoreTxt.text = "score: " .. score
    scoreTxt:setReferencePoint(display.TopLeftReferencePoint)
    scoreTxt.x = screenLeft + 15
end

我真的不知道在哪里放置timer.cancel(tmr)

function explode()
    timer.cancel(tmr)
    explosion.x = jet.x
    explosion.y = jet.y
    explosion.isVisible = true
    explosion:play()
    jet.isVisible = false
    timer.performWithDelay(3000, gameOver, 1)
end

function onCollision(event)
    if event.phase == "began" then
        if jet.collided == false then
            timer.cancel(tmr)
            num = nil;
            score = nil;
            jet.collided = true
            jet.bodyType = "static"

            explode()
        end
    end
end

一些更多信息,不知道你是否需要它:P

score = 1.5;
num = 1;
scoreTxt = display.newText ("Score:", 0, 0, "Helvetica", 20)
scoreTxt:setReferencePoint(display.TopLeftReferencePoint)
scoreTxt.x = display.screenOriginX + 10
scoreTxt.y = display.screenOriginX + 5
screenLeft = display.screenOriginX

如果有人可以帮助我,我会非常感激:) 提前感谢

点赞
用户2186639
用户2186639
tmr = timer.performWithDelay(1000, points, 0)

这行代码在 points 函数中造成了无限函数调用的问题,这就是泄漏的原因。如果你想要每秒钟调用 points 函数,你应该从别的地方调用它。

2013-10-16 12:44:42