5

Apple 推荐的在 SpriteKit 项目中组织资产的方式在引擎的历史过程中发生了很大变化。旧方法中也存在一些错误,这些错误阻碍了这些做法的实施并需要解决方法。关于 SO 的旧 Q&A 充满了过时的信息,或者被关于处理不再存在的错误的信息所混淆。需要在 SO 上发布一篇文章,说明如何实施该问题的当前解决方案,而不会因讨论过时的工作流程或已解决的错误而分心。所以问题是这样的:

如何在 SpriteKit 项目中组织我的图像资源?一些 Apple 文档说使用纹理图集来提高性能。但是SKTextureAtlas类参考描述了创建纹理图集和精灵图集的选项。我应该使用哪一个以及如何实现它?

4

1 回答 1

9

在资产目录中创建精灵图集。您可以获得纹理图集的性能优势(旧方法是手动创建纹理图集)以及在资产目录中组织图像资产的便利性。

在这个时间戳为 18:06 的WWDC 视频中,演讲者说:

在资产目录中以正常方式组织您的图像资产:将它们分组,在精灵图集中命名。它的作用是在构建时自动创建纹理图集,您可以通过 SKTextureAtlas 类检索这些图集。

这在类参考文档中得到了证实(尽管不如视频中那么清楚),其中说:

创建纹理图集的首选机制是在资产目录中……精灵图集提供了纹理图集的优势和资产目录的管理功能。

视频和课程参考文档都提到,这种做法可以让您利用应用程序细化(在视频中详细讨论)。

默认情况下,新的 Xcode 游戏项目是使用资产目录创建的。或者,您可以通过选择“文件”>“新建”>“文件...”,然后从出现的屏幕的“资源”部分中选择“资产目录” ,将新的资产目录添加到您的项目中。

要添加精灵图集,首先在项目导航器中选择您的资产目录。然后在编辑器区域的大纲视图中右键单击或选择加号按钮 (+)。从出现的下拉列表中选择New Sprite Atlas 。

创建一个新的精灵图集

您在精灵图集中组织的图像资源将在构建时自动形成纹理图集。您可以通过代码从纹理图集中加载图像:

let atlas = SKTextureAtlas(named: "Monster")
let frame1 = atlas.textureNamed("monster-walk1.png")
于 2018-04-16T21:12:06.160 回答