一尘不染

使用Spritekit的简单Gif动画

swift

我真的找不到一个简单的解决方案,我看到的每个示例都只显示了非常复杂的解决方案,但是我想要的只是2-3张循环显示的图像,因此看起来好像是动画的。与Gif动画效果相同。现在我有这个来创建图像

MonsterNode = SKSpriteNode(imageNamed: "MonsterNode_GameScene")

但是如何将MonsterNode变量设置为此类动画?我确实在寻找实现这一目标所需的最少代码。


阅读 468

收藏
2020-07-07

共1个答案

一尘不染

主要思想是animateWithTextures用于此任务。您需要设置精灵需要进行动画处理的所有帧以及每个帧的显示时间。然后使用repeatActionForever运行动画循环。

// Add 3 frames
let f0 = SKTexture.init(imageNamed: "MonsterNode_GameScene_0")
let f1 = SKTexture.init(imageNamed: "MonsterNode_GameScene_1")
let f2 = SKTexture.init(imageNamed: "MonsterNode_GameScene_2")
let frames: [SKTexture] = [f0, f1, f2]

// Load the first frame as initialization
monsterNode = SKSpriteNode(imageNamed: "MonsterNode_GameScene_0")
monsterNode.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))

// Change the frame per 0.2 sec
let animation = SKAction.animateWithTextures(frames, timePerFrame: 0.2)
monsterNode.runAction(SKAction.repeatActionForever(animation))

self.addChild(monsterNode)
2020-07-07