代码之家  ›  专栏  ›  技术社区  ›  Andrew Duncan

iOS:我可以使用已经用Adobe Animate创建的纹理图集吗?

  •  0
  • Andrew Duncan  · 技术社区  · 6 年前

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

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

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

    1 回复  |  直到 6 年前
        1
  •  1
  •   cc.    6 年前

    如果您正在获取预烘焙的纹理图集,其中包含外部生成的精灵应在何处获取其纹理的描述,则可能需要使用使用SKTexture的init(rect:in:)初始值设定项创建的SKTextures创建精灵。

    您需要从XML文件中读取sprite的extents,然后从atlas中创建一个纹理。然后,可以创建一个新的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。