如何使用Sprite Kit减慢运行SKAction followPath以获得慢动作效果的SKSpriteNode?

时间:2013-12-10 22:19:39

标签: ios objective-c sprite-kit

我基本上希望动作能够运行,然后在动作中间创建一个慢动作效果,然后将其从慢动作中移出。有没有人对如何做到这一点有任何好的反馈?我已经考虑过手动创建动作并使用更新方法,但我觉得这可能有点矫枉过正。我希望有一个更简单的解决方案。

另一个想法是停止动作,然后以较慢的持续时间再次启动它,但我认为它不会停留在相同的路径上,它可能看起来很奇怪。

这是我用来创建动作的代码。

CGMutablePathRef cgpath = CGPathCreateMutable();
CGPathMoveToPoint(cgpath,NULL, mysprite.position.x, mysprite.position.y);
CGPathAddCurveToPoint(cgpath, NULL, cp1.x, cp1.y, cp2.x, cp2.y, e.x, e.y);
[mysprite runAction:[SKAction sequence:@[[SKAction followPath:cgpath asOffset:NO orientToPath:YES duration:3]]]];
CGPathRelease(cgpath);

1 个答案:

答案 0 :(得分:24)

每个节点都有speed属性:

  

应用于节点及其执行的所有操作的速度修饰符   后代。

     

讨论
  默认值为1.0,表示所有操作都会运行   以正常速度。如果设置不同的速度,则会显示时间   对节点及其上执行的所有操作运行得更快或更慢   后人。例如,如果将速度值设置为2.0,则会运行操作   快两倍。

您可以将此值设置为小于1的值,以使操作运行得更慢。您甚至可以设置速度的动画以逐渐减慢速度:

[mySprite runAction:[SKAction speedTo:0.5 duration:1.0]];