创建新的 SKSpriteNode 与使用 SKSpriteNode 的副本

creating new SKSpriteNode vs using a copy of a SKSpriteNode

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

感谢您的任何见解。

复制有点便宜,但不多。它不需要访问任何 IO 来抓取纹理之类的东西,因为你已经在内存中了。

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