Loops 在Lua中创建循环计时器函数
我正在尝试创建一个循环计时器函数,它将每隔Loops 在Lua中创建循环计时器函数,loops,timer,lua,Loops,Timer,Lua,我正在尝试创建一个循环计时器函数,它将每隔x秒发送一个信号,持续y秒,然后关闭z秒,并在循环中重复,我对编程完全陌生,所以我不确定该怎么做,我已经阅读了一些教程,但我不知道如何编程,我能找到的壁橱是 require 'socket' -- for having a sleep function ( could also use os.execute(sleep 10)) timer = function (time) local init = os.time() local d
x
秒发送一个信号,持续y
秒,然后关闭z
秒,并在循环中重复,我对编程完全陌生,所以我不确定该怎么做,我已经阅读了一些教程,但我不知道如何编程,我能找到的壁橱是
require 'socket' -- for having a sleep function ( could also use os.execute(sleep 10))
timer = function (time)
local init = os.time()
local diff=os.difftime(os.time(),init)
while diff<time do
coroutine.yield(diff)
diff=os.difftime(os.time(),init)
end
print( 'Timer timed out at '..time..' seconds!')
end
co=coroutine.create(timer)
coroutine.resume(co,30) -- timer starts here!
while coroutine.status(co)~="dead" do
print("time passed",select(2,coroutine.resume(co)))
print('',coroutine.status(co))
socket.sleep(5)
end
require'socket'——用于具有睡眠功能(也可以使用os.execute(睡眠10))
定时器=功能(时间)
本地初始化=os.time()
本地差异=os.difftime(os.time(),init)
而diffLua并不是用来计时的(事实上,除了特定的语言之外,我所知道的任何编程语言都不是)。提供计时器和事件是嵌入应用程序的工作
因此,您要么必须提供自己的计时API,我认为这是没有选择的,因为您“完全不熟悉编程”,要么使用一个模块
有两个Lua模块可以帮助您:
- ()
我没有使用其中任何一个,但流明似乎更活跃和完善。此外,由于它是纯Lua,不需要任何额外的模块,因此应该更容易为初学者设置。事实上,第一个例子应该为你提供足够的线索来确定你想要做什么
无论如何,您可能希望先寻找其他项目来学习编程,最好是那些不涉及计时的项目。我认为Lua还没有很好的线程支持。