我正在尝试在 Lua 应用程序的控制台界面中读取用户输入。但是,我不想像标题所暗示的那样停止程序执行。使用 read() 会在用户打字时干扰正在进行的事件和界面更新的正常处理。
我能想出的最佳解决方案是维护一个临时变量,我将任何用户输入应用到它不是功能键。但是,我的事件处理程序返回扫描码,我不知道没有办法将这些映射到 ASCII 码,除非为每个键维护一个表,这是我真正想要避免的。
有任何想法吗?
编辑举例说明我的意思:
function read_input()
local input = read()
do_something_with(input)
end
while true do
e,param1,param2,param3 = os.pullEvent()
if (e=='key' and param1=='201') then
read_input()
elseif (e=='something_else') then
do_something_else()
end
end
如您所见,用户可以在某些时候进入需要用户输入的功能。在采用此输入时,我不能让程序的任何其他(基于事件的)功能受到此阻碍。