Python 在pygame中呈现文本会导致延迟

Python 在pygame中呈现文本会导致延迟,python,pygame,lag,Python,Pygame,Lag,我的函数模块中有write函数,如下所示 def write(size, writing, color, x, y): font = pygame.font.SysFont("corbel", size) text = font.render(writing, True, color) D.blit(text, (x, y)) 我将其导入主模块,并在主模块中创建了如下函数 def print_stats(): write(30, f"Red player's

我的函数模块中有
write
函数,如下所示

def write(size, writing, color, x,  y):
    font = pygame.font.SysFont("corbel", size)
    text = font.render(writing,  True, color)
    D.blit(text, (x, y))
我将其导入主模块,并在主模块中创建了如下函数

def print_stats():
    write(30, f"Red player's hp {player2.hp}", (200, 50, 50),10, 10)
    write(30, f"Green player's hp {player1.hp}", (50, 200, 50),10, 60)
只要我不把
print_stats()
放在主循环中,游戏就运行得很好,但是,只要我尝试运行这个函数,它就会严重降低FPS。我在代码中没有看到任何可能导致延迟的东西,我做错了什么?谢谢


编辑:不知道这是否是relevnet,但我忘了提到我将
pygame.init()

避免在每个帧中创建字体对象。
根据应用程序循环之前的大小创建字体。e、 g:

font30=pygame.font.SysFont(“corbel”,30)
def write(字体、书写、颜色、x、y):
text=font.render(书写、真、彩色)
D.blit(文本,(x,y))
def print_stats():
写(font30,f“红色玩家的hp{player2.hp}”,(200,50,50),10,10)
写(font30;f“绿色玩家的hp{player1.hp}”,(50200,50),10,60)

这并不能解决文本在每一帧中呈现的问题。如果仍然滞后,则在分别更改
player1.hp
player2.hp
时,必须渲染文本表面一次。e、 g:

职业玩家:
定义初始化(自身、颜色、名称):
self.color=颜色
self.name=名称
# [...]
def更改HP(自身,val):
self.hp+=val
self.hptext=font30.render(f“{self.name}玩家的hp{self.hp}”,True,self.color)
D.blit(player1.hptext,(10,60))

但为什么我在另一个项目中做了完全相同的事情,效果很好,但不是这个one@hippozhipos可能有很多原因,不同的字体,文本大小,文本长度,帧率。。。