2017-01-01 4 views
0

私は現在、チュートリアルを使ってflappybirdのようなゲームを作っていますが、私は同じものをすべてコピーしましたが、パイプはちょうど選択した場所に産み続け、まったく水平に動かない。どのようにこれを修正するための任意のアイデア?ここに私のコードは、これまでである:あなたのコードスニペットでswift 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

私はJared Davidsonのflappy bird tutorialを見ていましたが、このコードスニペットは、パイプが生成され、右から左に移動するようになっています。しかし、私のパイプはすべて同じ位置に産んでいて、ノードは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]) 

をブラケットの第一のセットにそれを移動させます。しかし、助けのおかげでヒープ! :)

関連する問題