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

时间:2015-02-04 00:31:52

标签: ruby

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

EDIT 我希望它能够按下回车键。就像游戏运行时一样,检查用户是否按下箭头键然后按下按键,或者如果没有按任何键则继续操作。

2 个答案:

答案 0 :(得分:1)

what I could find和一些黑客攻击,我设法将一些能够立即回应你在命令行中运行时按下的键的内容。

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

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

所以程序的所有内容及其所有处理都存在于主循环中,并且每个循环都会在STDIN中抓取一个字符。

答案 1 :(得分:0)

你不能用一个简单的方法做到这一点。最常见的方法是使用curses gem