使用pygame,这样做会更有效吗?
两者之间是否存在性能差异?与在启动时使用单个Surface相比,使用第一种方法是否需要更多的绘制调用(即,在启动时是否将这些像素的副本存储在ram / vram中)?
谢谢
答案 0 :(得分:3)
将图像钝化成一个表面,然后钝化那些表面会更快。
但是它会消耗更多的内存,因为您需要将这些表面保留在内存中的某个位置。
为什么?
当您要从Spritesheet中钝化图像时,最终将在Subsurfing / Clipping Spritesheet表面上,这意味着您需要在该位置上生成另一个表面。但是,此过程不会花费很长时间。
最有可能的性能好处是不值得的,因此我建议您采用最适合的方法。如果您担心性能,请查看内置的CProfile python模块。
VRAM永远不会成为方程式。 pygame.Surface
源自SDL_Surface
,该语言来自C语言的SDL库。 SDL_Surface
主要针对软件渲染,这意味着表面像素存储在标准RAM中。