在定时器运行时向ruby中输入命令



我正在创建一款基于文本的冒险游戏,我有一个用户遇到敌人的实例,并且有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

现在您可以在计时器运行时监听输入。当计时器到期时,您仍然需要与主逻辑通信…

最新更新