首页 > 解决方案 > 创建新的 SKSpriteNode 与使用 SKSpriteNode 的副本

问题描述

我正在寻找提高游戏性能的方法。在我的游戏中,boss 会同时(不同角度)施放 16 个火球。我当前的代码是为每个火球创建一个 SKSpriteNode,并重复该过程 16 次。我可以通过将创建过程分派到不同的线程来提高性能,然后在创建精灵后将其添加回主线程。这样我就不会在游戏中看到明显的滞后。但是,我认为如果我在创建第一个火球精灵后缓存它,然后使用 .copy() 15 次来创建其余的火球,它会进一步提高性能吗?最终,我试图了解在 SKSpriteNode 上使用 .copy() 与创建新节点一样昂贵吗?

感谢您的任何见解。

标签: sprite-kitskspritenode

解决方案


副本稍微便宜一点,但也不多。它不需要访问任何 IO 来获取纹理之类的东西,因为您已经在内存中拥有它。

现在,按照您设计游戏的方式,您不应该不断地重新创建火球。您应该创建一个池,并不断回收它们。这样,您只需在游戏的加载部分创建一次,并且不会将宝贵的周期浪费在多余的工作上。


推荐阅读