澄清一下,我正在使用 ComputerCraft(模拟器:http://gravlann.github.io/,语言:Lua)
我知道要等待按键
os.pullEvent("key")
等待 5 秒我需要使用这个
sleep(5)
但我想等待按键并在 5 秒后禁用事件等待程序。
最佳答案
我不熟悉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
关于events - 5秒内按任意键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23794234/