在SpriteKit项目中使用精灵图集,纹理图集或资产目录

时间:2018-04-16 21:11:03

标签: ios swift sprite-kit asset-catalog sktextureatlas

Apple在SpriteKit项目中组织资产的推荐方式在引擎历史记录中发生了很大变化。旧方法中也存在一些错误,这些错误妨碍了这些实践的实施和所需的解决方法。旧的Q& A on SO充满了关于处理不再存在的错误的信息已过时或混乱的信息。需要有关于SO的帖子,告诉我们如何实现当前的解决方案,而不会被关于过时的工作流程或已解决的错误的讨论分散注意力。所以问题是:

如何在SpriteKit项目中组织我的图像资源?一些Apple文档对use texture atlases to improve performance说。但SKTextureAtlas class reference描述了创建纹理图集和精灵图集的选项。我应该使用哪一个以及如何实现它?

1 个答案:

答案 0 :(得分:1)

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

In this WWDC video时间戳18:06,发言人说:

  

在资产目录:group中以正常方式组织您的图像资产   他们,用sprite atlas命名。这样做是自动的   在构建时创建纹理地图集,您可以通过它来检索   SKTextureAtlas课程。

class reference doc确认了这一点(虽然不如视频中那么清晰),其中说:

  

创建纹理图集的首选机制是在资产范围内   目录......精灵地图集提供了纹理图集的优点   具有资产目录的管理功能。

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

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

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

Create a new sprite atlas

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

从纹理图集加载图像
let atlas = SKTextureAtlas(named: "Monster")
let frame1 = atlas.textureNamed("monster-walk1.png")