我目前正在尝试使用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))
非常感谢任何帮助/建议!
答案 0 :(得分:2)
根据Ted Klein Bergman的评论,使用.convert()
和.convert_alpha
是一个huuuuge性能提升。
# From originally:
1920x1080: 0.062s (~15 FPS)
# To:
1920x1080: 0.002s (~140 FPS)