ios - iOS:我可以使用已经用 Adobe Animate 创建的 Texture Atlas 吗?
问题描述
我知道我可以在 Xcode 中添加单个图像的序列,并让它创建纹理图集。这个过程在易于搜索的场所中得到了很好的描述。(像这个。)
我从设计师那里得到了地图集,这些地图集是用 Adobe Animate (v18.0) 创建的,已经合并到完整的工作表中,此外还有描述动画的随附 XML 文件。(其中子图像和显示帧不匹配 1:1,所以很难看出 Xcode 是如何解决这个问题的。)
从 SpriteKit 文档中我不清楚是否/如何使用这些预定义的纹理图集。这可能吗?
解决方案
如果您要获得预烘焙的纹理图集,以及外部生成的精灵应该在何处获取纹理的描述,您可能必须使用您使用 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。
推荐阅读
- amazon-web-services - Amazon Sagemaker Ground Truth 如何工作?
- autoencoder - 是否可以标准化 VAE 的潜在空间格式?
- google-apps-script - 类似 Apps Script Trigger 功能的 Cron
- tensorflow - 如何在 tensorflow 数据集上使用样本权重?
- android - 如何在片段 MVVM 和 DataBinding 中使用 tabLaout 设置 viewpager?
- angular - Scope of stepControl in Angular Material stepper
- c# - 为什么 MongoDB C# 驱动程序默认不使用 BsonType.Decimal128 表示小数?
- asp.net - 经过身份验证的用户的声明数据丢失
- javascript - JavaScript form (ajax submission) with validation doing something funky
- python - 我有多个列表,我想按最新的进行过滤