【问题标题】:How many surfaces is reasonable?多少个表面是合理的?
【发布时间】:2017-05-11 19:57:52
【问题描述】:

同时使用多少个pygame.Surface是合理的?

更准确地说,成本是多少:

  • 在记忆中保留一个表面?
  • 将一个表面粘贴到另一个表面上?

因此,对于与应用程序相关的其他操作,可以在列表(或任何其他容器)中保留多少个表面,以及在每一帧可以对多少个表面进行 blitted?


由于这可能过于宽泛,这里是一个具体的情况。我想制作一个带有重复图案的动画背景。我希望图案的每个元素都独立移动,因此我为每个元素使用一个表面。

如果我想显示一百个元素,每个元素使用一个表面是否仍然可以接受?

【问题讨论】:

  • 你应该尝试观察结果。

标签: python performance pygame pygame-surface


【解决方案1】:

我制作的游戏中有超过一万个表面的阵列。它运行得很好。你不应该害怕使用很多表面,发疯吧。

如果你看过《饥荒》游戏,我正在制作一款类似的游戏。我有十五个不同的生物群落,每个生物群落都有多个地砖以供变化。仅此一项就将其推向了 100 多个表面。然后我有一堆不同的植物,比如树木、浆果丛、肉食性快乐植物等。这些植物种类繁多,你可以在某些地方一次加载一百个。同样,这些中的每一个都有变化。我也有很多移动的实体,比如巨型蜘蛛和类似的东西。某些类型的实体需要超过一百个表面,仅用于它们的各种可能动作可能发生的所有动画。

总而言之,我可能一次最多显示一千个表面,加载超过两万个。游戏运行良好,甚至可以以 60 fps 运行;但并非没有像预期的那样广泛使用线程。

结论:假设没有限制,因为可能没有限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    相关资源
    最近更新 更多