每次清除屏幕时重绘每张图像都非常痛苦。
with open("test.html", "w") as f:
for port in ports:
f.write("{}\n".format(port))
在上面的代码中,我在M变量中加载背景图像,每次清除屏幕以更新精灵的位置时,我还必须重绘背景图像,导致严重的FPS掉落。
无论如何,每当我使用T.fill((0,0,0))时,我都可以阻止背景图像被清除?
答案 0 :(得分:1)
首先,尝试convert
背景图片。通常应使用convert
或convert_alpha
转换图片以提高效果。
M = pygame.image.load("test.jpg").convert()
其次,如果背景图像具有屏幕大小,则可以省略行T.fill((0,0,0))
,因为无论如何背景都会填满屏幕。
第三,如果背景不滚动而您只需要每帧更新屏幕的某些部分,则可以尝试使用pygame.display.update()
而不是pygame.display.flip()
。将单个矩形或一系列rects传递给pygame.display.update
,告诉它应该更新屏幕的哪些部分。
我不确定这些措施能否大幅提升表现。 Pygame相当慢,因为它仍然依赖于软件渲染。
旁注,使用描述性变量名而不是T,M等。