我正在执行以下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]];
但它不起作用(节点暂停此持续时间而不是减速)。由于对象永远移动,我无法删除该操作并替换为另一个(因为它位于其路径的中间)。
任何想法如何正确执行?
答案 0 :(得分:7)
使序列成为伊瓦或属性。然后你可以随时做到这一点来减慢速度:
sequence.speed = 0.5;
答案 1 :(得分:0)
接受的答案对我不起作用。我的解决方案是停止当前动画并以所需的速度再次运行:
removeAllActions()
sequence.speed = 100 // run 100 times faster
run(anim)