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