澄清一下,我使用的是 ComputerCraft(模拟器:http://gravlann.github.io/,语言:Lua)
我知道等待按键
os.pullEvent("key")
并等待 5 秒钟,我需要使用它
sleep(5)
但我想等待按键并在 5 秒后禁用事件服务员。
澄清一下,我使用的是 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