澄清一下,我正在使用ComputerCraft(模拟器:http://gravlann.github.io/,语言:Lua)
我知道要等待按键
os.pullEvent("key")
并等待5秒我需要使用此
sleep(5)
但是我想等一下按键并在5秒后禁用事件服务员。
答案 0 :(得分:2)
我不熟悉 ComputerCraft API ,但我想,您可以使用parallel API
。基本上,它允许并行执行两个或多个函数。
具体 - parallel.waitForAny
。在任何函数完成后返回,因此,只执行正在执行的函数。相反,parallel.waitForAll
等待执行的所有函数。
我会用这样的东西:
local action_done = 0
local function wait_for_keypress()
local event, key_code = os.pullEvent("key")
--do something according to separate key codes? :}
end
local function wait_some_time()
sleep(5)
end
action_done = parallel.waitForAny(wait_for_keypress, wait_some_time)
--action done now contains the number of function which was finished first.
编辑:如果仅使用 ComputerCraft API ,则应更改为此(使用timer event
):
local function wait_some_time()
os.startTimer(5)
end