添加延迟/计时器

时间:2015-07-08 04:08:27

标签: lua corona

我目前正在使用Corona SDK,Lua作为我的主要语言。 我遇到了这个代码的问题 - 当我运行它时,它会自动给我'light'的值,我在其中打印出来。我设置light = 2并且使用这个循环,它应该每次减1,直到它<= 0.当我运行程序时,值一次显示为1,0,-1。我想知道我是否可以在每个值之间添加延迟。

我正在制作一个“西蒙说”游戏,因此,这些盒子不会点亮,因为它会同时运行所有内容。

以下是代码:

if(count%20 == count - math.floor(count/20)*20) then
    clicked = 0

    while(light >= 0) do
        light = light - 1
        print(light)
    end
end 

1 个答案:

答案 0 :(得分:1)

以下是Corona SDK的简单 timer.performWithDelay 功能。您可以在此处查看更多内容:https://docs.coronalabs.com/api/library/timer/performWithDelay.html

以下是适合您问题的示例代码。

注意:我将代码基于您上面显示的代码。

local lights = 2
local timerName -- ADD A TIMER ID TO YOUR TIMER SO THAT WE CAN CANCEL IT LATER ON

local function myFunction()

    lights =  lights - 1

    if (lights >= 0) then
        --DO SOMETHING WITH THE LIGHTS
        print(lights)
    else

        --TERMINATE THE TIMER
        timer.cancel( timerName )

    end

end

  if(count%20 == count - math.floor(count/20)*20) then

    timerName = timer.performWithDelay( 1000, myFunction, 0 )

  end