我知道我可以在Xcode中添加单个图像的序列,并让它创建Texture Atlas。此过程在易于搜索的场所中得到了很好的描述。 (就像这个。)
我从设计师那里得到了地图集,它们是用Adobe Animate(v18.0)创建的,已经合并到整个工作表中,并且还附带了描述动画的XML文件。 (其中的子图像和显示框架不匹配1:1,因此很难看到Xcode如何解决这一问题。)
SpriteKit文档尚不清楚我是否/如何使用这些预定义的纹理图集。这可能吗?
答案 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。