如何将合并图像用于 Swift 的动画?
How do I use merged images for animation with Swift?
我在图形编辑器中做了一个简单的动画,总共有四张图片。当我导出图像时,它们最终变成了一个 png。不知道为什么我不只得到四个单独的图像 - 这些图像很容易使用。无论如何,我如何循环动画的多合一图像?或者如何将图像分离为单独的 png 文件?
如果图像是分开的,我将如何制作动画:
let textureAtlas = SKTextureAtlas(named: "Character")
for item in 1...textureAtlas.textureNames.count {
let texturenames = "character" + String(item)
characterTexture.append(textureAtlas.textureNamed(texturenames))
}
characterSpriteNode.run(SKAction.repeatForever(SKAction.animate(with: characterTexture, timePerFrame: 0.5)))
您不能将 APNG 用于纹理。我同意这个类似的问题,最好的办法就是将它们分成单独的 PNG。
SKSpriteNode using APNG for texture
无论您使用什么软件来创建原件,都应该可以选择导出为单独的 PNG。每个应用程序都不同,但在 Photoshop 中您使用 "Save for web",而在 Procreate 中您可以使用 "Share Layers > PNG Files" 而不是 "Share Layers > Animated PNG"。
我在图形编辑器中做了一个简单的动画,总共有四张图片。当我导出图像时,它们最终变成了一个 png。不知道为什么我不只得到四个单独的图像 - 这些图像很容易使用。无论如何,我如何循环动画的多合一图像?或者如何将图像分离为单独的 png 文件?
如果图像是分开的,我将如何制作动画:
let textureAtlas = SKTextureAtlas(named: "Character")
for item in 1...textureAtlas.textureNames.count {
let texturenames = "character" + String(item)
characterTexture.append(textureAtlas.textureNamed(texturenames))
}
characterSpriteNode.run(SKAction.repeatForever(SKAction.animate(with: characterTexture, timePerFrame: 0.5)))
您不能将 APNG 用于纹理。我同意这个类似的问题,最好的办法就是将它们分成单独的 PNG。
SKSpriteNode using APNG for texture
无论您使用什么软件来创建原件,都应该可以选择导出为单独的 PNG。每个应用程序都不同,但在 Photoshop 中您使用 "Save for web",而在 Procreate 中您可以使用 "Share Layers > PNG Files" 而不是 "Share Layers > Animated PNG"。