SpriteKit SKAction缓解

那么标题提出的问题,我怎么能应用easing到SpriteKit的SKAction节点的行动?

我发现这个工作:

SKAction *moveAction = [SKAction moveByX:moveX y:moveY duration:0.5]; moveAction.timingMode = SKActionTimingEaseInEaseOut; [node runAction:moveAction]; 

不过,这里只有less数几种缓解types,分别是Linear,EaseIn,EaseOut,EaseInOut。

那些宽松的价值是固定的,不能改变。 我正在寻找像EleasticInOut这样的东西。 最好多一点控制。 我该如何创build?

我一直在使用SKEase框架: https : //github.com/buddingmonkey/SpriteKit-Easing它和标准的SpriteKit Actions一样简单,并增加了所有常见的更复杂的方便,立方体,反弹,弹性,回等。 SpriteKitUtils还添加了更复杂的cachingtypes和一些方便的SpriteKit实用程序: https : //github.com/raywenderlich/SKTUtils

另一种select是使用自定义动作方法来自定义动作,并将自定义动作/animation函数传递给代码块:

 -(SKAction *)customActionWithDuration:(NSTimeInterval)seconds actionBlock:(void (^)(SKNode *node, CGFloat elapsedTime))block 

几年前,Apple在UIKit中引入了弹簧animation,让您在执行UIViewanimation时设置弹簧阻尼和初始速度。 不幸的是,他们没有在SpriteKit中实现,所以我build立了自己的库来做到这一点。

这是SKAction的一套扩展,它复制了大多数工厂方法,增加了阻尼和速度参数。

代码在GitHub上,随意使用它: https : //github.com/ataugeron/SpriteKit-Spring