iOS:我可以使用已经用Adobe Animate创建的Texture Atlas吗?

时间:2018-07-24 20:36:20

标签: ios sprite-kit adobe sprite-sheet

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

我从设计师那里得到了地图集,它们是用Adobe Animate(v18.0)创建的,已经合并到整个工作表中,并且还附带了描述动画的XML文件。 (其中的子图像和显示框架不匹配1:1,因此很难看到Xcode如何解决这一问题。)

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

1 个答案:

答案 0 :(得分:1)

如果要获取预烘焙的纹理图集,并使用外部生成的描述精灵应在何处获取纹理,则可能必须使用使用init(rect:in: )的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 )

一旦完成此过程,就可以使用常规方法对精灵进行动画处理,例如使用纹理图集设置带有纹理列表的SKAction。