【问题标题】:Pre loading assets with Sprite Kit使用 Sprite Kit 预加载资源
【发布时间】:2014-03-02 23:54:24
【问题描述】:

当希望在 Sprite Kit 游戏中预加载资产、图像、音频、SKTextures 等时,是否足以预加载到强大的 iVar 以便 iOS 缓存这些资产以备将来使用,然后让游戏从中提取它们幕后的缓存。或者......最好将资产加载到可以在游戏中的任何位置直接访问的单例中的强大 iVar 中?

【问题讨论】:

    标签: ios7 sprite-kit


    【解决方案1】:

    我不确定 SpriteKit 是否/如何在幕后缓存资源,但 Apple Adventure example game 将资产预加载到静态变量中。所以我可能会效仿他们。

    【讨论】:

      【解决方案2】:

      如果您使用工具,您可以看到 spritekit 实际缓存了多少(很多)。所以我认为你不会通过使用单例来保存你的资产而看到任何性能提升。话虽如此,我仍然使用单例来简化编程和热交换字体和纹理等内容。

      您将看到的最大性能提升是:

      • 使用纹理图集
      • 不使用苹果推荐的“按名称查找节点”方法,而是使用您自己的数组或 ivars 来查找它们。就我个人而言,我从来没有像启动 spritekit 后那样使用过 NSHashTable(我在 osx 上)和 NSMapTable。

      【讨论】: