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
ご覧のとおり、ユーザーはある時点で、ユーザー入力を要求する機能に到達する可能性があります。この入力が取られている間、これによって妨げられているプログラムの他の (イベントベースの) 機能を持つことはできません。