如何通过使用applyImpulse跟随自定义贝塞尔曲线路径将节点从A点移动到B点

时间:2014-03-31 21:11:55

标签: objective-c sprite-kit skphysicsbody skaction skphysicsworld

我希望能够通过使用SKPhysicsBody的applyImpulse方法跟踪自定义贝塞尔曲线路径,将节点从A点移动到B点。我想使用applyImpulse的原因是因为它模拟了一个很好的自然运动(开始快速和慢速),这取决于初始冲动。似乎当物体通过applyImpulse施加脉冲时,它只会在与环境的摩擦导致其速度降低到零时停止。我希望它遵循我的道路并在最后停止。我该怎么办呢?

2 个答案:

答案 0 :(得分:2)

像LearnCocos2D所说的那样,跟随路径的对象目前还没有与应用物理进行交互,直到它完成了所述路径。

每个SKAction都有一个可以设置为timerMode的属性。

所以如果你在一行上实例化你的SKAction,你可以在下一行说:

action.timingMode = SKActionTimingEaseOut;

将在动作过程中快速开始减速,缩放以使其在指定的持续时间内完成移动。

答案 1 :(得分:0)

如下面的海报所示,在applyImpulse之后无法使我的对象在自定义贝塞尔曲线路径上移动。我使用了SKAction的customActionWithDuration方法和https://github.com/warrenm/AHEasing的自定义缓动函数

我想要的效果与applyImpulse不同或类似,但能够定义我自己的自定义缓动功能有很大帮助。