首页 > 解决方案 > iOS:我可以使用已经用 Adob​​e Animate 创建的 Texture Atlas 吗?

问题描述

我知道我可以在 Xcode 中添加单个图像的序列,并让它创建纹理图集。这个过程在易于搜索的场所中得到了很好的描述。(像这个。)

我从设计师那里得到了地图集,这些地图集是用 Adob​​e Animate (v18.0) 创建的,已经合并到完整的工作表中,此外还有描述动画的随附 XML 文件。(其中子图像和显示帧不匹配 1:1,所以很难看出 Xcode 是如何解决这个问题的。)

从 SpriteKit 文档中我不清楚是否/如何使用这些预定义的纹理图集。这可能吗?

标签: iossprite-kitadobesprite-sheet

解决方案


如果您要获得预烘焙的纹理图集,以及外部生成的精灵应该在何处获取纹理的描述,您可能必须使用您使用 init(rect:in:) 初始化程序创建的 SKTextures 创建您的精灵SKTexture。

您需要从 XML 文件中读取精灵的范围,然后从图集中创建纹理。然后,您可以创建一个新的 SKTexture 对象,该对象代表较大纹理的一部分,作为精灵的纹理。

这是未经测试的伪代码,但它显示了过程:

let spriteRect = (get the rect from the XML)
let atlas = SKTexture( imageNamed: "myTextureAtlas" )
let spriteTexture = SKTexture( rect:spriteRect, in:atlas )
let sprite = SKSpriteNode( texture:spriteTexture )

一旦你完成了这个过程,你就可以使用通常的方法为精灵设置动画,比如使用纹理图集中的纹理列表设置 SKActions。


推荐阅读