我目前正在使用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
答案 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