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

时间:2016-04-26 10:11:52

标签: xcode swift sprite-kit

我刚刚完成了我在XCode中的游戏以及我在节点上完成的动画,简单的SKAction淡出动画。我知道我可以在Swift Via Cocoapods的单个视图应用程序中加入动画,但是我是否将它们添加到Sprite工具包游戏中?动画,如摇动画或反弹动画。一个非常广泛和新手的问题,但我想知道。谢谢。

1 个答案:

答案 0 :(得分:1)

取决于您想要的动画类型以及它们如何应用于节点。

对于要应用于节点的简单摇动动画,您可以使用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))

如果您需要有关上述示例的完整教程,请访问https://www.raywenderlich.com/96822/sprite-kit-tutorial-drag-drop-sprites,这里有一些很棒的教程!

如果你想申请反弹'动画你可以使用物理引擎内置的Sprite-Kits。只需将SKPhysicsBody应用于SKNode即可。使用 categoryBitMask collisionBitMask contactBitMask 创建另一个SKPhysicsBody(例如底层)。然后,您可以将节点从地面弹起。调整恢复原状摩擦 linearDamping 以创建更好的物理效果。

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

希望这有点帮助!