【问题标题】:Pygame FPS faster than what I wantPygame FPS 比我想要的快
【发布时间】:2015-05-11 21:58:53
【问题描述】:

我正在尝试以 80 fps 运行游戏,但我得到了 83 fps?!怎么回事?

while 1:
  start = time()
  clock.tick_busy_loop(80)
  self.update()
  fps=int(1./(time()-start))
  print fps, 'fps'
>> 83 fps

【问题讨论】:

    标签: python pygame


    【解决方案1】:
    Resolution of pygame clock = 1 msec
    80 fps = 12.5 msec
    83 fps = 12 msec
    int(12.5) = 12
    

    【讨论】:

    • 这就是 int 的工作原理吗?我在 fps 上做 int 而不是在时间上。如果我这样做了,我会期待你的结果:dt=int(time()-start) fps=1./dt
    • 正如@stark 在第一行所说,Pygame 时钟的分辨率是 1 毫秒。要获得恰好 80 FPS 的帧速率,它需要每 12.5 毫秒绘制一个新帧。它无法做到这一点,因此它会将其落地/舍入到 12 毫秒,为您提供 1 / 0.012 = 83 和三分之一 FPS(然后您将其转换为 int,结果为 83)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多