2014-12-07 62 views
0

所以我的問題,這應該是簡單的,如果這個精靈做一個完整的旋轉,我將如何得到它的0.5降低持續時間或某事性質?如何降低SKAction.rotateByAngle當精靈不完整的旋轉(SWIFT)

class GameScene: SKScene { 
override func didMoveToView(view: SKView) { 
    /* Setup your scene here */ 
    let myLabel = SKLabelNode(fontNamed:"Calibri") 
    myLabel.text = "Hello, World!"; 
    myLabel.fontSize = 65; 
    myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame)); 

    self.addChild(myLabel) 

    let sprite = SKSpriteNode(imageNamed:"Spaceship") 

    sprite.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame)) 

    let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:5) 

    sprite.runAction(SKAction.repeatActionForever(action)) 

    self.addChild(sprite) 
    } 
} 
+0

你想讓它在一次旋轉後以更短的持續時間或更改的持續時間開始嗎? – Acey 2014-12-07 07:41:52

+0

我希望它總是在一組持續時間(5),並且每次旋轉時開始的,它由1下降的持續時間,或0.5 @Acey – Justin 2014-12-07 07:44:30

回答

1

使用序列SKAction將幾個動作與您想要的參數一起排隊。在你的情況下,這可能是一個很好的開始:

var actions = [SKAction]() 

for var i = 5.0; i > 0; i -= 0.5 { 
    actions.append(SKAction.rotateByAngle(CGFloat(2.0 * M_PI), duration:i)) 
} 

let sequence = SKAction.sequence(actions) 

sprite.runAction(sequence); 
+0

太感謝你了!當它達到極限時,我怎樣才能讓它保持一定的持續時間?假設持續時間等於0.5,那麼如何在持續時間爲0.5之前讓應用停止? @Acey – Justin 2014-12-07 07:58:18

+0

行動數組中添加其他repeatActionForever行動像你上面已經有。 actions.append(SKAction.repeatActionForever(SKAction.rotateByAngle(CGFloat的(M_PI),持續時間:0.5)) – Acey 2014-12-07 08:04:11

+0

完全旋轉是2.0 * M_PI不M_PI – 0x141E 2014-12-07 18:10:29