这个标题揭示了一个问题,我如何在SpriteKit中将缓动应用于SKAction节点操作?
我发现这是可行的:
SKAction *moveAction = [SKAction moveByX:moveX y:moveY duration:0.5];
moveAction.timingMode = SKActionTimingEaseInEaseOut;
[node runAction:moveAction];然而,可用的缓动类型只有几种,即线性、EaseIn、EaseOut、EaseInOut。
这些宽松的值是固定的,不能改变。我在找像EleasticInOut这样的东西。最好有更多的控制力。我如何创建它?
发布于 2014-02-14 03:47:28
我一直在使用SKEase框架:https://github.com/buddingmonkey/SpriteKit-Easing它和标准的SpriteKit操作一样简单,并添加了所有常见的更复杂的缓动、立方、反弹、弹性、后退等。SpriteKitUtils还添加了更复杂的缓动类型和一些方便的SpriteKit实用工具:https://github.com/raywenderlich/SKTUtils
另一种选择是使用自定义操作方法滚动您自己的操作方法,并向其传递带有自定义缓动/动画函数的代码块:
-(SKAction *)customActionWithDuration:(NSTimeInterval)seconds actionBlock:(void (^)(SKNode *node, CGFloat elapsedTime))block发布于 2014-10-19 07:28:37
几年前,苹果在UIKit中引入了弹簧动画,允许你在执行UIView动画时设置弹簧阻尼和初始速度。不幸的是,他们没有在SpriteKit中实现这一点,所以我制作了自己的库来实现这一点。
它是SKAction上的一组扩展,复制了大多数工厂方法,添加了阻尼和速度参数。
代码在GitHub上,请随意使用:https://github.com/ataugeron/SpriteKit-Spring
https://stackoverflow.com/questions/19095390
复制相似问题