2017-01-01 45 views
0

所以我使用的教程目前正在一個flappybird般的遊戲和我抄下來的一切一樣,但我的水管剛在所選擇的點和Don」產卵水平移動。有想法該怎麼解決這個嗎?這是我到目前爲止的代碼:迅速3 - 製作笨鳥先飛遊戲,水平管麻煩

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    if gameStarted == false { 
     gameStarted = true 

     Ghost.physicsBody?.affectedByGravity = true 

     let spawn = SKAction.run {()in 
      self.createWalls() 
     } 

     let delay = SKAction.wait(forDuration: 2.0) 
     let spawnDelay = SKAction.sequence([spawn, delay]) 
     let spawnDelayForever = SKAction.repeatForever(spawnDelay) 
     self.run(spawnDelayForever) 

     let distance = CGFloat(self.frame.width + wallPair.frame.width) 
     let movePipes = SKAction.moveBy(x: -distance, y: 0, duration: TimeInterval(0.01 * distance)) 
     let removePipes = SKAction.removeFromParent() 
     moveAndRemove = SKAction.sequence([removePipes, movePipes]) 


     let jumpUpAction = SKAction.moveBy(x: 0, y:180, duration: 0.2) 
     Ghost.physicsBody?.velocity = CGVector(dx: 0, dy: 0) 
     Ghost.run(jumpUpAction) 
+0

你沒有提供足夠的信息來回答你的問題:你看哪個教程?你的代碼片段打算做什麼? –

+0

我看賈裏德戴維森笨鳥先飛教程,這個代碼片段是爲了使管道中產卵,並從右邊移到左邊爲假跳通,最後只有上下移動。但是我的管道都在相同的位置產卵,節點不會用'removeFromParent()'線刪除它們。我想要的只是一種快速簡單的方法,你可以產生管道並順利地將它們從右向左移動。謝謝 – Enuff

回答

0

在您的代碼段,你永遠不會調用

self.run(moveAndRemove) 

這是需要執行一個動作,這可能是爲什麼事情只能得到催生的原因,即觸發與

self.run(spawnDelayForever) 

你可以檢查是否是這種情況?

+0

會做,還是謝謝:) – Enuff

+0

同樣的問題。管道在彼此頂部產卵並且不從右向左移動。管道也不會被移除 – Enuff

0

所有固定的,我簡單地移動的塊:

let distance = CGFloat(self.frame.width + wallPair.frame.width) 
let movePipes = SKAction.moveBy(x: -distance, y: 0, duration: TimeInterval(0.01 * distance)) 
let removePipes = SKAction.removeFromParent() 
moveAndRemove = SKAction.sequence([removePipes, movePipes]) 

並移動入第一組括號中。感謝堆雖然幫助! :)