Lua: 无阻塞获取键盘输入
Lua: Get Keyboard Input Without Blocking
我已经开始在 Lua 进行一个小项目,该项目涉及制作一个基于文本的界面,该界面会不断更新,并允许键盘输入进行交互。
我需要一种获取键盘输入的方法,但我还需要它不阻塞或有某种超时(最好设置为几分之一秒)。我自己做过研究,但没有找到对我有用的东西。
我需要适用于 Lua 5.1.5 和 Linux 的软件。 Windows 兼容性会很好,但这不是必需的,因为我也在做需要 ANSI 终端的事情。
正如 hyde 在我的 post 评论中所述,我可以使用 ncurses 的 Lua 包装器来获取输入。除此之外,我还可以将它的功能用于我自己要编写的代码的其他部分。
我在 Lua 5.1 中使用 Lua 套接字并打开两个单独的 Lua 进程来执行此操作。我有两个 Lua 控制台 windows- "INPUT WINDOW" 和 "OUTPUT WINDOW"。 INPUT WINDOW 通过本地主机发送按键。 OUTPUT WINDOW 读取我为此使用的本地主机套接字。它是非阻塞的;您可以在 udp 接收上设置一个非常快的超时。它很丑陋,但它是我发现的最普通的解决方案。也就是说,来自 INPUT window 的输入数据不会出现在 OUTPUT window 上(除非我想要),这对于基于控制台的 UI.
我已经开始在 Lua 进行一个小项目,该项目涉及制作一个基于文本的界面,该界面会不断更新,并允许键盘输入进行交互。
我需要一种获取键盘输入的方法,但我还需要它不阻塞或有某种超时(最好设置为几分之一秒)。我自己做过研究,但没有找到对我有用的东西。
我需要适用于 Lua 5.1.5 和 Linux 的软件。 Windows 兼容性会很好,但这不是必需的,因为我也在做需要 ANSI 终端的事情。
正如 hyde 在我的 post 评论中所述,我可以使用 ncurses 的 Lua 包装器来获取输入。除此之外,我还可以将它的功能用于我自己要编写的代码的其他部分。
我在 Lua 5.1 中使用 Lua 套接字并打开两个单独的 Lua 进程来执行此操作。我有两个 Lua 控制台 windows- "INPUT WINDOW" 和 "OUTPUT WINDOW"。 INPUT WINDOW 通过本地主机发送按键。 OUTPUT WINDOW 读取我为此使用的本地主机套接字。它是非阻塞的;您可以在 udp 接收上设置一个非常快的超时。它很丑陋,但它是我发现的最普通的解决方案。也就是说,来自 INPUT window 的输入数据不会出现在 OUTPUT window 上(除非我想要),这对于基于控制台的 UI.