2015-05-11 38 views
1

我想以80 fps运行游戏,但我得到83 fps?!这是怎么回事?Pygame FPS比我想要的更快

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

回答

1
Resolution of pygame clock = 1 msec 
80 fps = 12.5 msec 
83 fps = 12 msec 
int(12.5) = 12 
+0

那是多么INT作品?我正在做fps上的int而不是时间..如果我这样做,我会期待你的结果: dt = int(time() - start) fps = 1./dt –

+1

正如@stark在第1行中所说的, Pygame时钟的分辨率为1毫秒。要获得正好80帧/秒的帧率,它需要每12.5ms画一个新帧。它不能做到这一点,所以它会将它调平/调整到12ms,给你1/0.012 ='83和1/3的FPS(然后你将其转换为“int”,结果为83)。 – TigerhawkT3