在遇到 PyGame 中文本渲染的一些问题后,我想知道是否有任何有效的方法来处理它。
第一种方法:
将已经呈现的文本存储在一个类 self.variables 中:
class SomeClass():
def __init__(self):
self.text1 = myfont.render("Text 1",0,self.colour)
self.text2 = myfont.render("Text 2",0,self.colour)
#etc.
然后在事件处理中,我只是 blit 变量:
while running:
screen.blit(SomeClass().text1,(x, y))
注意:myfont 是一个 pygame.font.SysFont(...)
结果:帧率从 >29(限制为 30)下降到大约 20 到 22。
第二种方法:
仅将文本字符串存储在类变量中并在传输之前渲染。
class SomeClass():
def __init__(self):
self.text1 = "Text 1 string"
self.text2 = "Text 2 string"
然后在 blitting 之前渲染:
while running:
#more code
screen.blit(SomeClass().myfont.render(SomeClass().text1,0,SomeClass().colour)
结果:帧率相当下降
第三种方法:
使用 GIMP,在那里写入文本,然后将其存储在 PNG 中。结果:FPS 没有明显变化
所以问题仍然存在:有什么方法可以有效地处理 PyGame 中的文本,还是让它成为图片的更好解决方案?我只是不了解 PyGame 中文本处理的基本规则吗?我忽略了什么吗?
您如何处理 Py-Games 中的文本?
提前感谢所有意见和建议;)
帕特里克