Ruby睡眠或延迟不到一秒钟?

JP *_*shy 146 ruby

我正在制作一个带有ruby的脚本,它必须以每秒24帧的速度渲染帧,但我需要在发送命令之间等待1/24秒.什么是最好的睡眠时间不到一秒钟?

Geo*_*lly 197

sleep(1.0/24.0)
Run Code Online (Sandbox Code Playgroud)

至于你的后续问题,如果这是最好的方法:不,你可以得到不那么平滑的帧率,因为每帧的渲染可能不会花费相同的时间.

您可以尝试以下解决方案之一:

  • 使用定时器,使用绘图代码每秒触发24次.
  • 创建尽可能多的帧,根据传递的时间创建运动,而不是每帧.

  • @Funkodebat我很确定每个基本的ruby运行时都会为你做这件事. (14认同)
  • 最好将1.0/24.0值提取到DRY原理的变量中.其他代码片段也需要该值,因此您应将其保留在中心位置以避免重复.如果表现是副作用,那就太好了! (8认同)
  • 但这是一个快速划分,每帧运行一次.希望帧本身的渲染在计算复杂性方面要高得多.这是过早优化的一个很好的例子. (4认同)
  • @JosephSilvashy:我对ruby解释器没有任何见解,但ruby mri默认不进行memoization.但我希望它在将源代码转换为字节代码时进行这种优化. (2认同)

YOU*_*YOU 98

通过漂浮睡觉,就像 sleep 0.1