Xcode,SpriteKit:如何整合复杂的动画

Xcode,SpriteKit:如何整合复杂的动画,xcode,swift,sprite-kit,Xcode,Swift,Sprite Kit,我刚刚在XCode中完成了我的游戏,当一个关卡完成时,我在节点上的动画是简单的动作淡出动画。我知道我可以通过Cocoapods将动画整合到一个单视图应用程序中,但我可以将它们添加到一个精灵工具包游戏中吗?动画,如抖动动画或反弹动画。一个非常广泛的新手问题,但我想知道。多谢各位 取决于所需的动画类型以及如何将其应用于节点 对于要应用于节点的简单抖动动画,可以使用SKAction let someNode = SKSpriteNode(imagedNamed: "SomeNode") addChil

我刚刚在XCode中完成了我的游戏,当一个关卡完成时,我在节点上的动画是简单的动作淡出动画。我知道我可以通过Cocoapods将动画整合到一个单视图应用程序中,但我可以将它们添加到一个精灵工具包游戏中吗?动画,如抖动动画或反弹动画。一个非常广泛的新手问题,但我想知道。多谢各位

取决于所需的动画类型以及如何将其应用于节点

对于要应用于节点的简单抖动动画,可以使用SKAction

let someNode = SKSpriteNode(imagedNamed: "SomeNode")
addChild(someNode)

let rotateActionOne = SKAction.rotateByAngle(degToRad(-3.0), duration: 0.1)
let rotateActionTwo = SKAction.rotateByAngle(0.0, duration: 0.1)
let rotateActionThr = SKAction.rotateByAngle(degToRad(3.0), duration: 0.1)

let shakeSequence = SKAction.sequence([rotateActionOne, rotateActionTwo, rotateActionThr])
someNode.runAction(shakeSequence) //or someNode.runAction(SKAction.repeatActionForever(sequence))
如果您想在上述示例访问中获得完整的教程,这里有一些很棒的教程

如果您想应用“反弹”动画,可以使用物理引擎中内置的精灵工具包。只需将SKPhysicsBody应用于SKNode。使用类别比特掩码碰撞比特掩码联系人比特掩码创建另一个SKPhysicsBody(如底层)。然后可以将节点弹离地面。调整恢复摩擦线性阻尼,以创建更好的物理效果

动画的另一个选项是在PNG动画编辑器(Adobe Animate CC)中实际绘制动画。关键帧动画可以是一种获得真正复杂外观动画的方法,而不必进行大量计算。然而,这需要相当好的艺术能力(以及相当长的时间)。可以渲染动画并将其放入SKTextureAtlas中,然后仅设置纹理图集的动画以生成动画

希望这能有所帮助