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