所以,我用pygame在python中做了一个游戏引擎。我试图用pygame.time.Clock().get_fps()来获取和显示fps,但它只显示0.0。下面是基本代码:
import pygame
from pygame.locals import *
screen = pygame.display.set_mode()
while 1:
print(pygame.time.Clock().get_fps())
pygame.time.Clock().tick(60)
我只需要任何能准确显示当前fps的东西。
2条答案
按热度按时间pexxcrt21#
请参阅
get_fps()
计算游戏的帧速率(以每秒帧数为单位)。它是通过计算最近十次对
Clock.tick()
的调用的平均值来计算的。因此,有两个原因导致您的代码无法正常工作:每次调用
pygame.time.Clock()
时都会创建一个新的示例,FPS无法平均;但更大的问题是,您从另一个示例调用tick
。您必须在应用程序循环之前(但不是在应用程序循环中)建立一个Clock对象,并从该对象呼叫
tick
和get_fps
。同时也要行程应用程序循环中的事件(PyGame window not responding after a few seconds):hgqdbh6s2#
一个更好的方法是在代码的顶部创建时钟,然后在游戏循环的最后执行.tick函数。