我正在创建一款基于文本的冒险游戏,我有一个用户遇到敌人的实例,并且有3秒的反应时间。我的计时器代码看起来像这样:
def timer
puts "1"
sleep(2)
puts "2"
sleep(2)
puts "3"
sleep(2)
end
这可以工作,但是当将1、2、3打印到控制台时,它不允许我输入命令。所以我希望用户能够在计时器运行时输入"攻击"。此时,命令可以在计时器期间输入,但直到计时器完成后才会在控制台上注册。这能做到吗?
谢谢
您需要在另一个线程上运行计时器:
def timer
Thread.new do
puts "1"
sleep(2)
puts "2"
sleep(2)
puts "3"
sleep(2)
end
end
现在您可以在计时器运行时监听输入。当计时器到期时,您仍然需要与主逻辑通信…