gpt4 book ai didi

python - 任何加速 Python 和 Pygame 的方法?

转载 作者:行者123 更新时间:2023-12-05 07:09:38 27 4
gpt4 key购买 nike

我正在用 Pygame 编写一个简单的自上而下的 rpg,我发现它很慢....虽然我不希望 python 或 pygame 与使用 C/C++ 或 C/C++ 等编译语言制作的游戏的 FPS 相匹配event Byte Compiled ones like Java, 但是目前pygame的FPS还是15左右。我尝试渲染16色位图而不是PNG或24位位图,这稍微提高了速度,然后无奈之下,我把所有东西都换成了黑白单色位图,这使 FPS 达到 35。但不会更多。现在根据我读过的大多数游戏开发书籍,要让用户对游戏画面完全满意,2d 游戏的 FPS 至少应该是 40,那么有什么方法可以提高 pygame 的速度吗?

最佳答案

使用 Psyco,用于 python2:

import psyco
psyco.full()

此外,启用双缓冲。例如:

from pygame.locals import *
flags = FULLSCREEN | DOUBLEBUF
screen = pygame.display.set_mode(resolution, flags, bpp)

如果不需要,您也可以关闭 alpha:

screen.set_alpha(None)

与其每次都翻转整个屏幕,不如跟踪更改的区域并只更新那些区域。例如,大致如下(主循环):

events = pygame.events.get()
for event in events:
# deal with events
pygame.event.pump()
my_sprites.do_stuff_every_loop()
rects = my_sprites.draw()
activerects = rects + oldrects
activerects = filter(bool, activerects)
pygame.display.update(activerects)
oldrects = rects[:]
for rect in rects:
screen.blit(bgimg, rect, rect)

大多数(全部?)绘图函数返回一个矩形。

您也可以只设置一些允许的事件,以便更快速地处理事件:

pygame.event.set_allowed([QUIT, KEYDOWN, KEYUP])

此外,我不会费心手动创建缓冲区,也不会使用 HWACCEL 标志,因为我在某些设置中遇到过问题。

使用它,我已经为小型 2d 平台游戏实现了相当不错的 FPS 和流畅度。

关于python - 任何加速 Python 和 Pygame 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61492211/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com