【发布时间】:2010-10-09 14:13:48
【问题描述】:
我正在使用 Ruby 制作一个简单的基于终端的游戏,目前我正在尝试想出一种从终端读取输入的方法。
到目前为止,我一直在使用gets,但我想让游戏立即做出反应,而不需要换行(这样你就不需要按键,然后输入)。
我发现我需要将终端置于非规范模式,我假设我可以通过调用 $stdin.ioctl 来做到这一点。问题是,我不确定我应该传递什么参数或标志,文档和搜索只会导致有关底层 C 函数的信息。
谁能告诉我应该用什么称呼$stdin.ioctl?我在 OSX Leopard 上使用 Terminal.app/tcsh。
编辑:这就是我最终使用的,感谢 MarkusQ:
%x{stty -icanon -echo}
key = STDIN.read(1)
【问题讨论】: