我正在做一個遊戲,我有一個節點可以在2個紋理之間來回切換。我想知道如何在切換回前一個紋理之前爲每個紋理添加0.5秒的持續時間。現在當我運行遊戲時,紋理立即切換,所以我想延遲0.5秒。SpriteKit紋理持續時間
我當前的代碼:
func move(){
let recursive = SKAction.sequence([
SKAction.setTexture(SKTexture(imageNamed: "D2")),
SKAction.setTexture(SKTexture(imageNamed: "DWalkRight")),
SKAction.moveByX(frame.size.width/2.8, y: 0, duration: NSTimeInterval(randomNumber())),
SKAction.setTexture(SKTexture(imageNamed: "D1")),
SKAction.setTexture(SKTexture(imageNamed: "DWalkLeft")),
SKAction.moveByX(-frame.size.width/2.8, y: 0, duration: NSTimeInterval(randomNumber())),
SKAction.runBlock({self.move()})])
Drake1.runAction(recursive, withKey: "move")
}
運行順序將等待0.5秒,然後更改紋理。你是否需要這個與某個事件同步,例如。當節點在某個其他動作之後到達某個點時,或者您只是想讓節點在一段時間後改變其紋理,無論如何? – Whirlwind
基本上我有一個節點是從屏幕左側移動到右側,並且我有兩個紋理使它看起來像圖像走路。所以當它移動時,我想在兩個紋理之間切換(每次紋理持續0.5秒)。 – NickyNick321
在這種情況下,你可以使用任何你喜歡的東西。只需運行一個延遲序列。爲了改變紋理,你可以按照Sangony的回答,或者在所需的節點上使用setTexture方法(你可以在一個塊內部做到這一點),或者不使用塊並使用一個動作,就像你已經在做的那樣。你也可以使用pbodsk的方式,但因爲它只是兩個圖像交換,所以我建議你自己嘗試這兩種方法,看看更適合你的是什麼。使用紋理進行動畫處理非常有用,當你有很多紋理進行動畫處理時,但它需要一個紋理數組,以便增加一點「複雜度」:) – Whirlwind