1

目前我有一个 SKTextureAtlas 太大而无法快速加载。它包含我游戏中所有敌人的纹理。我想拆分图集,以便游戏仅加载特定级别所需的纹理。但是,一些敌人出现在多个级别。我应该如何拆分地图集?我不希望为每个级别创建一个图集,因为我必须为重复的敌人复制图像文件,并且当有很多级别时会变得很烦人。有没有更优雅的方法?

4

1 回答 1

0

一个好的场景是当整个关卡的屏幕上所有可见的精灵都进入同一个纹理图集时。在这种情况下,Texture Atlas 被加载到 GPU 中并保留在那里。在每一帧中,CPU 只需要通知 GPU 每个精灵的坐标/位置/变换,节省了大量的数据传输。

我知道这可能会迫使您复制一些精灵,因为其中一些精灵可用于多个级别。这是只有你(作为你的游戏开发者)才能接受的东西。

来自苹果文档

创建纹理图集时,您希望在收集太多或太少的纹理之间取得平衡。如果您使用的图像太少,SpriteKit 可能仍需要多次绘制通道来渲染一帧。如果包含太多图像,则可能需要一次将大量纹理数据加载到内存中。因为 Xcode 为您构建了图集,所以您可以相对轻松地在不同的图集配置之间切换。因此,请尝试使用纹理图集的不同配置,并选择能够提供最佳性能的组合。

于 2016-06-26T01:56:26.743 回答