使用pygame显示高分辨率.png图像

时间:2018-01-06 13:13:19

标签: python image pygame

我目前正在尝试使用pygame开发计算机游戏 - 我想为游戏显示背景图像(2D-jump-and-run)。

然而,当我在特定窗口大小之上显示全屏背景图像时,我注意到帧率下降很明显:

Windowsize | Time to blit the image | (~ FPS)

1280x720:  0.029s (~32 FPS)
1366x768:  0.031s (~29 FPS)
1600x900:  0.042s (~22 FPS)
1920x1080: 0.062s (~15 FPS)

是否有一种不同的,更有效的图像方式?我不想将游戏限制在像1366x768这样小的窗口大小......

我尝试使用较小的KB大小的图像,并尝试以1/4大小的方式显示4张图像以覆盖屏幕,但时间保持不变。

游戏在pygame屏幕上运行,所以我不能使用任何功能,例如Tkinter(因为他们需要一个Tkinter表面)。

目前我正在使用pygame的以下功能:

# Once at the beginning
screen = pygame.display.set_mode((screenWidth_X, screenHeight_Y))

# Every frame
screen.blit(background_Image, (0,0))

非常感谢任何帮助/建议!

1 个答案:

答案 0 :(得分:2)

根据Ted Klein Bergman的评论,使用.convert().convert_alpha是一个huuuuge性能提升。

# From originally:
1920x1080: 0.062s (~15 FPS)
# To:
1920x1080: 0.002s (~140 FPS)