我在Swift Playground中有一个SKScene,我想将这个gif(https://media.giphy.com/media/uMU6E2DFqeZSE/giphy.gif)作为SKSpriteNode添加到背景中。我首先尝试将其作为动画UIImage转换为SKSpriteNode,如下所示:
let dance = UIImage.animatedImageNamed("macarenadance.gif", duration: 3.0)
let texture = SKTexture(image: dance!)
let testImage = SKSpriteNode(texture: texture)
scene.addChild(testImage)
但它遇到转换错误并在运行中途停止。似乎不可能将动画UIImage用作精灵。任何在Swift Playground中显示gif的建议/替代方案都将非常感激。
不幸的是,UIImage不支持gif动画,但幸运的是,还有第三方库来帮助你。
它被称为SwiftGif。
以下是示例用法。将文件添加到游乐场的源并将其粘贴到:
import UIKit
import PlaygroundSupport
let image = UIImage.gif(name: "yourgifgoeshere.gif")
PlaygroundPage.current.liveView = imageView
也许你必须为SKTextureAnimations使用分离的图像:
let texture = SKTexture.init(imageNamed: "macarenadance0.png")
let texture1 = SKTexture.init(imageNamed: "macarenadance1.png")
let texture2 = SKTexture.init(imageNamed: "macarenadance2.png")
let textures = [texture,texture1,texture2]
let testImage = SKSpriteNode(texture: texture);
testImage.run(SKAction.repeatForever(
SKAction.animate(with: textures, timePerFrame: 0.3)))
addChild(testImage)