Lua:获取键盘输入而不阻塞

我开始做一个小型的Lua项目,它涉及制作一个不断更新的基于文本的界面,并允许使用键盘输入进行交互。

我需要一种获取键盘输入的方法,但同时我需要它不会阻塞,或者有一些超时机制(最好可以设置为几分之一秒)。我已经自己做了一些研究,但是我没有找到适合我的解决方案。

我需要一些能够在Lua 5.1.5和Linux上使用的东西。Windows兼容性很好,但不是必须的,因为我还在做一些需要ANSI终端的事情。

点赞
用户4485704
用户4485704

如hyde在我的贴子中的评论中所述,我可以使用Lua的ncurses包装器来获取输入。除此之外,我还可以使用它的特性来编写我本打算自己编写的部分代码。

2015-03-11 08:19:49
用户6491604
用户6491604

我正在 Lua 5.1 中使用 Luasocket 并打开两个独立的 Lua 进程。我有两个 Lua 控制台窗口 - "输入窗口" 和 "输出窗口"。 "输入窗口" 通过本地主机发送按键。 "输出窗口" 读取我用于此操作的本地主机套接字。它是非阻塞的;您可以在 udp 接收上设置非常快的超时时间。这很难看,但这是我找到的最普通的解决方案。尽管如此,来自 "输入窗口" 的输入数据不会出现在 "输出窗口" 上(除非我希望它出现),这对于基于控制台的 UI 可能很不错。

2016-06-21 00:35:08