(运行 Ruby 1.9.3 的 Windows 7 x64)
情况是这样的:我用 Ruby 制作了文本游戏,并且我使用传统的gets
方法来获取用户的输入。当游戏中发生某些事情时(即,正在将内容打印到屏幕上),用户输入的任何内容都会丢失,用户必须继续在新行上输入他/她输入的内容。他/她在丢失之前最初输入的内容仍然存在,只是没有显示出来。
如果以上没有意义,请尝试执行此代码,您将看到问题:
Thread.new do
loop do
puts "Hello!"
sleep 2
end
end
Thread.new do
loop do
gets
end
end
我想要的是打印的行(在这种情况下"Hello!"
)放置在用户输入的行之前。
我知道要实现这一点,我可能需要深入研究 Windows API。甚至可能是不可能的。但如果有办法,我真的很想知道。