如何更改执行的SpriteKit操作的持续时间

时间:2014-04-26 18:05:20

标签: ios7 sprite-kit

我正在执行以下SpriteKit操作:

    SKAction *moveLeft = [SKAction  moveByX:-moveX y:0 duration:moveDuration];
    SKAction *moveRight = [moveLeft reversedAction];
    SKAction *sequence = [SKAction sequence:@[moveLeft, moveRight]];

    [my_node runAction [SKAction repeatActionForever:sequence]];

我希望减慢动作几秒钟(这是由于用户点击而发生),然后恢复到正常速度。我尝试使用

这样做
    [my_node runAction [SKAction speedTo: 0.5 duration: 10]];

但它不起作用(节点暂停此持续时间而不是减速)。由于对象永远移动,我无法删除该操作并替换为另一个(因为它位于其路径的中间)。

任何想法如何正确执行?

2 个答案:

答案 0 :(得分:7)

使序列成为伊瓦或属性。然后你可以随时做到这一点来减慢速度:

sequence.speed = 0.5;

答案 1 :(得分:0)

接受的答案对我不起作用。我的解决方案是停止当前动画并以所需的速度再次运行:

    removeAllActions()
    sequence.speed = 100 // run 100 times faster
    run(anim)