如何在不停止执行的情况下检查键盘输入



在不停止执行的情况下,使用什么命令/关键字来检查键盘输入?我想构建一个连续运行的循环,在循环的每一次迭代中,我都想检查键盘输入。如果用户按下正确的键,我的程序就会对其进行操作;否则,它将继续运行。

编辑我希望它能在不按回车键的情况下工作。就像游戏运行时一样,它会检查用户是否按下箭头键,然后对按键进行操作,或者在没有按下任何键的情况下继续操作。

根据我所能找到的和周围的一些黑客攻击,我成功地组合了一些东西,这些东西会立即响应你在命令行中运行时按下的键。

require 'io/console'
loop do
  p STDIN.getch
end

但正如参考答案所提到的,您将希望捕获SIGTERM,这样您就不会被困在程序中:Signal.trap("INT") { exit }

因此,程序的核心及其所有处理都存在于主循环中,每个循环都会从STDIN中获取一个字符。

使用简单的方法无法做到这一点。最常见的方法是使用curses gem。

相关内容

最新更新