gpt4 book ai didi

ios - 如何在 SpriteKit 中从 Web API 加载 Sprite 表

转载 作者:行者123 更新时间:2023-11-29 00:47:07 25 4
gpt4 key购买 nike

我是 SpriteKit 的新手,我的问题是如何从 Web API 加载 Sprite 表。

目前,我有一个 API 返回一个大的 PNG 图像,其中包含所有 Sprite 表,以及一个关于单个帧信息的 json。 (文件和 json 由 TexturePacker 生成)API 如下所示:

enter image description here

格式就像一个 .atlasc 文件夹,其中包含一个大图像和一个 plist (XML) 文件。

我正在考虑下载图像和plist文件并将其保存在磁盘中以便加载。但是,SKTextureAtlas.init(named: String) 只能从应用程序包中加载。

简而言之,我想在运行时从网络加载 Sprite 动画。

我可以控制 API,因此我可以更新 API 来实现我的目标。

最佳答案

我想到的方法是下载image,创建一个sourceTexture,比如:let sourceTexture = SKTexture(image: image)

然后使用 json 中的 frame 信息通过 init(rect rect: CGRect, inTexture texture: SKTexture) 方法创建单独的纹理

示例代码是:

var textures: [SKTexture] = []

let sourceTexture = SKTexture(image: image)
for frame in spriteSheet.frames {
let rect = CGRect(
x: frame.frame.origin.x / spriteSheet.size.width,
y: 1.0 - (frame.frame.size.height / spriteSheet.size.height) - (frame.frame.origin.y / spriteSheet.size.height),
width: frame.frame.size.width / spriteSheet.size.width,
height: frame.frame.size.height / spriteSheet.size.height
)
let texture = SKTexture(rect: rect, inTexture: sourceTexture)
textures.append(texture)
}

关于ios - 如何在 SpriteKit 中从 Web API 加载 Sprite 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38510209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com