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

时间:2018-07-17 16:00:29

标签: sprite-kit skspritenode

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

感谢您的见解。

1 个答案:

答案 0 :(得分:1)

复制稍微便宜一些,但不多。因为您已经在内存中保存了纹理,所以不需要访问任何IO即可获取。

现在,在设计游戏的方式中,您不应该一直在重新创建火球。您应该创建它们的池,并不断对其进行回收。这样,您只需要在游戏的加载部分中创建一次它们,就不会在冗余工作上浪费宝贵的时间。