在 Pygame 中显示 FPS

问题描述 投票:0回答:2

我正在和我的朋友一起使用 python 和 pygame 开发一个项目。我们尝试在游戏中制作 FPS 计数器,但尚未成功。 FPS 计数器始终显示零。这是代码:

#Create Text
def Render_Text(what, color, where):
    font = pygame.font.Font('assets/Roboto.ttf', 30)
    text = font.render(what, 1, pygame.Color(color))
    window.blit(text, where)
#Show FPS
    Render_Text(str(int(clock.get_fps())), (255,0,0), (0,0))
    print("FPS:", int(clock.get_fps()))
python pygame frame-rate
2个回答
8
投票
当您每帧调用一次

get_fps()

 时,
tick()
仅给出正确的结果:

clock = pygame.time.Clock()
run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False          

    clock.tick()
    print(clock.get_fps())

    # [...]

请参阅

get_fps()

的文档

get_fps()
计算时钟帧速率

get_fps() -> float

计算游戏的帧速率(以每秒帧数为单位)。它是通过对

Clock.tick()
最后十次调用求平均值来计算的。


4
投票

初始化你的时钟

clock = pygame.time.Clock()

添加您的字体

font = pygame.font.SysFont("Arial" , 18 , bold = True)

还有你的fps功能

def fps_counter():
    fps = str(int(clock.get_fps()))
    fps_t = font.render(fps , 1, pygame.Color("RED"))
    window.blit(fps_t,(0,0))

循环调用你的函数

fps_counter()
#dont forget to add tick(60) to run 60 frame per sec
© www.soinside.com 2019 - 2024. All rights reserved.