Answers:
如果您以全屏模式运行,则可以pygame.HWSURFACE
在初始化显示时使用该标志来告诉pygame尝试使用硬件表面。我相信,如果不能使用硬件表面,则pygame将默默地使用软件表面。
如果您不使用硬件表面,请考虑使用pygame.display.update(rectangle)
而不是pygame.display.flip()
。这只会更新给定的矩形,而不是整个显示,这可以大大提高性能,除非您的游戏实际需要更新整个显示。
如果您使用的是硬件或OpenGL表面,则还有一个pygame.DOUBLEBUF
使用硬件双重缓冲的功能,这意味着您的绘图函数将绘制到两个缓冲区之一,flip()
并将交换可见的缓冲区。
除了talljosh的答案之外,我还想提出一些建议:
尽可能避免旋转和缩放。这样的操作纯粹是在CPU上完成的,而且往往非常慢。
如果您要直接进行像素读取/修改,请使用Surface.get_buffer()
方法并进行处理,而不要使用Surface.set_at()/get_at()
方法。