我會先推薦Whirlwind的選項,這應該在99%的時間內使用,但是在改變速度不是一個選項的情況下,只需以較小的間隔在相反的方向應用rotateBy的另一個動作。
let rotateRate = (SKAction.rotateByAngle(CGFloat(-M_PI_2), duration: 50.0))
let repeatRotate = SKAction.repeatActionForever(rotateRate)
heroNode.runAction(repeatRotate)
...
func slowDown()
{
let rotateRate = (SKAction.rotateByAngle(CGFloat(M_PI_4), duration: 50.0))
let repeatRotate = SKAction.repeatActionForever(rotateRate)
heroNode.runAction(repeatRotate, forKey:"slowdown")
}
func removeSlowDown()
{
heroNode.removeActionForKey("slowdown")
}