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

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

4

1 に答える 1