您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

有什么方法可以加快Python和Pygame的速度吗?

有什么方法可以加快Python和Pygame的速度吗?

对python2使用Psyco:

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)

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

您还可以仅设置一些允许的事件,以更快地处理事件:

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

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

使用此工具,我已经为小型2d平台实现了相当不错的FPS和平滑度。

python 2022/1/1 18:37:08 有416人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶