我知道我可以在 Xcode 中添加单个图像的序列,并让它创建纹理图集。这个过程在容易搜索的地方有很好的描述。 (就像这个。)
我从设计师那里得到了 map 集,这些 map 集是用 Adobe Animate (v18.0) 创建的,已经合并到完整的工作表中,而且还附带描述动画的 XML 文件。 (其中子图像和显示帧不匹配 1:1,因此很难看出 Xcode 是如何计算出来的。)
我不清楚 SpriteKit 文档是否/如何使用这些预定义的纹理图集。这可能吗?
最佳答案
如果您要获得预烘焙的纹理图集,并具有外部生成的关于 Sprite 应从何处获取纹理的描述,您可能必须使用使用 init(rect:in: 创建的 SKTextures 来创建 Sprite ) ) SKTexture 的初始值设定项。
您需要从 XML 文件中读取 Sprite 的范围,然后从图集中创建纹理。然后,您可以创建一个新的 SKTexture 对象,它代表较大纹理的一部分,作为您的 Sprite 的纹理。
这是未经测试的伪代码,但它显示了过程:
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 )
完成此过程后,您可以使用常用方法为 Sprite 设置动画,例如使用纹理图集中的纹理列表设置 SKActions。
关于iOS:我可以使用已经用 Adobe Animate 创建的 Texture Atlas 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51507136/