如何在指定时间后关闭某个功能?

问题描述 投票:0回答:2

我知道我的问题听起来很愚蠢,但我是 Lua 新手,所以我正在尽力做出最佳实践。

function wait(n)
    local start = os.time()
    repeat until os.time() > start + n
end
function hi(x)
    while x do
        print("Hi")
        wait(.5)
    end
end
hi(true)

例如,我想在运行6秒后关闭“hi”功能,并在停止2秒后重新启用它,该怎么办?非常感谢!

lua
2个回答
1
投票

尝试这个改变...

function wait(n)
    local start = os.clock()
    repeat until os.clock() > start + n
end
function hi(x)
    for i = 1, x do
        print("Hi")
        wait(.5)
    end
end
hi(4) -- With the hardcoded wait(.5) this will end after 2s

一个警告。
Lua 速度很快,因此 wait() 将以高性能模式运行。
让它以 hi(120) 运行一分钟,您的风扇也会以高冷却模式运行。
...最好有一个对 CPU 更友好的等待/睡眠。

使用 LuaJIT 轻松搞定:https://luajit.org/ext_ffi_tutorial.html


0
投票

给你:)

function wait(s)
  local lastvar
  for i=1, s do
        lastvar = os.time()
        while lastvar == os.time() do

        end
  end

结束

© www.soinside.com 2019 - 2024. All rights reserved.