Events 在5秒内按任意键

Events 在5秒内按任意键,events,time,lua,wait,computercraft,Events,Time,Lua,Wait,Computercraft,为了澄清,我使用的是ComputerCraft(emulator:,语言:Lua) 我知道等待一次按键 os.pullEvent("key") 要等5秒钟,我需要用这个 sleep(5) 但是我想等待按键并在5秒钟后禁用事件服务程序。我不熟悉ComputerCraft API,但我想,您可以使用它。基本上,它允许并行执行两个或多个函数 具体来说-。它在函数的任何一个完成后返回,因此,只有一个正在执行。相反,等待执行所有函数 我会用这样的方法: local action_done = 0 l

为了澄清,我使用的是ComputerCraft(emulator:,语言:Lua)

我知道等待一次按键

os.pullEvent("key")
要等5秒钟,我需要用这个

sleep(5)
但是我想等待按键并在5秒钟后禁用事件服务程序。

我不熟悉ComputerCraft API,但我想,您可以使用它。基本上,它允许并行执行两个或多个函数

具体来说-。它在函数的任何一个完成后返回,因此,只有一个正在执行。相反,等待执行所有函数

我会用这样的方法:

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,则应更改为此(使用):

local function wait_some_time()
    os.startTimer(5)
end