0
我试图在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
正如你所看到的,用户可以在一个功能,要求用户输入某个点的土地。在采取这种输入的同时,我不能让程序的任何其他(基于事件的)功能受到阻碍。
你从哪里得到这个'os.pullEvent'函数? –
它的电脑。一个minecraft mod – SReject
尝试使用'coroutines'或者如果minecraft提供了类似的基于计时器的事件处理程序。 – hjpotter92