python Pygame的FPS只有0.0

gc0ot86w  于 2022-12-10  发布在  Python
关注(0)|答案(2)|浏览(168)

所以,我用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的东西。

pexxcrt2

pexxcrt21#

请参阅get_fps()
计算游戏的帧速率(以每秒帧数为单位)。它是通过计算最近十次对Clock.tick()的调用的平均值来计算的。
因此,有两个原因导致您的代码无法正常工作:每次调用pygame.time.Clock()时都会创建一个新的示例,FPS无法平均;但更大的问题是,您从另一个示例调用tick
您必须在应用程序循环之前(但不是在应用程序循环中)建立一个Clock对象,并从该对象呼叫tickget_fps。同时也要行程应用程序循环中的事件(PyGame window not responding after a few seconds):

import pygame
from pygame.locals import *
screen = pygame.display.set_mode()
clock = pygame.time.Clock()
while 1:
  pygame.event.pump()
  print(clock.get_fps())
  clock.tick(60)
hgqdbh6s

hgqdbh6s2#

一个更好的方法是在代码的顶部创建时钟,然后在游戏循环的最后执行.tick函数。

import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode()
clock = pygame.time.Clock()

while 1:
  pygame.display.update()
  clock.tick(60)

相关问题