gpt4 book ai didi

python - Pygame - 更有效地从 spritesheet 中 blit Sprite ,或将单个 Sprite blit 到它们自己的表面?

转载 作者:太空宇宙 更新时间:2023-11-03 15:36:02 25 4
gpt4 key购买 nike

使用 pygame,是否会更有效率:

  1. 每帧从 spritesheet 的一部分中 Blit 一个单独的 sprite
  2. 在启动时,将每个 Sprite 从 spritesheet 传输到它们自己的表面,然后传输这些表面

两者之间有什么性能差异吗?与启动时的单个表面相比,使用第一种方法是否需要更多的绘制调用(即在启动时是否在 ram/vram 中存储这些像素的副本)?

谢谢

最佳答案

将图像 block 化到表面,然后 block 化这些表面会更快。

但是它会消耗更多内存,因为您需要将这些表面保存在内存中的某个位置。

为什么?

当您从 spritesheet 中 blit 图像时,您最终会在 spritesheet 表面进行子冲浪/剪裁,这意味着您需要当场生成另一个表面。但是,这个过程不会花费很长时间。

性能优势很可能不值得,因此我建议您只使用您最熟悉的方法。如果您担心性能,请查看内置的 CProfile python 模块。

VRAM 永远不会出现在这个等式中。 pygame.Surface 派生自 C 编程语言的 SDL 库中的 SDL_SurfaceSDL_Surface 主要针对软件渲染,这意味着表面像素存储在标准 RAM 中。

关于python - Pygame - 更有效地从 spritesheet 中 blit Sprite ,或将单个 Sprite blit 到它们自己的表面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54738650/

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