2015-05-18 54 views
2

有兩個對象發生碰撞時運行的以下代碼。Action Sequence

var A = SKAction.scaleBy(0.1, duration: 0.52) 
vanish.runAction(A) 

第1行正在運行縮放操作,第2行正在對我想要的對象運行縮放操作。

但是,如何在END操作中運行一些代碼?說,要將分數從0改爲1?

目前,我有這樣的事情:

var A = SKAction.scaleBy(0.1, duration: 0.52) 
vanish.runAction(A) 

score = 1 

但這並不等待操作完成。

我知道我需要使用一個action.sequence。我有這個。但我不知道怎麼寫,上面寫着「變量的變化值從0到1」

謝謝你們的行動:d

回答

1

你有兩個選擇:你可以通過完成塊runAction一旦SKAction完成,將執行該操作。從documentation for SKNode

func runAction(_ action: SKAction!, completion block: (() -> Void)!)

然後,您可以使用此像這樣:

vanish.runAction(A) { 
    score = 1 
    // If `score` is a property of your class you'll need to use self.score 
} 

或者,你可以使用SKAction.runBlock和使用的SKAction秒的順序,例如:

let scale = SKAction.scaleBy(0.1, duration: 0.52) 
let complete = SKAction.runBlock { score = 1 } 

vanish.runAction(SKAction.sequence([scale, complete])) 

希望有所幫助!

+0

非常感謝您的幫助!我最終只是把我想要的代碼完全放入runBlock中。我花了數小時試圖弄清楚這一點。非常感謝:D – Questions

+0

很高興它爲你工作:)祝你的項目好運! – ABakerSmith

相關問題