2017-04-16 14 views
1

ちょっと私の質問は比較的シンプルです。画面の左側をタップするたびに2つのブロックがポジションを切り替える方法を教えてください。もう一度タップすると、彼らは元の位置に戻ります(ある意味では元に戻ります)。SpriteKitゲームのコーディング

次の画像には青と黄色のブロックを無視し、赤いブロックの初期位置はx:0、y:475、緑色ブロックの初期位置はx:0、y:550

Screenshot

は再び私は、ブロック位置、私は、画面の左側をタッチするたびに切り替えを支援する必要があります。

//These are my actions... 

let topUnderBlockSwitch = SKAction.moveTo(y: 550, duration: 0.1) 
let topAboveBlockSwitch = SKAction.moveTo(y: 475, duration: 0.1) 
let bottomUnderBlockSwitch = SKAction.moveTo(y: -475, duration: 0.1) 
let bottomTopBlockSwitch = SKAction.moveTo(y: -550, duration: 0.1) 


override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 

    for touch in touches { 

    let location = touch.location(in: self) 
    if location.x < 0 { 

     if greenBlock.position.y == 550 { 

      redBlock.run(topUnderBlockSwitch) 
      greenBlock.run(topAboveBlockSwitch) 

     } else if greenBlock.position.y == 475 { 

      redBlock.run(topUnderBlockSwitch) 
      greenBlock.run(topAboveBlockSwitch) 

     } 

    } else if // the rest of the code for the right side... 

答えて

1

これはどう:

redBlock.run(SKAction.moveTo(y:greenBlock.position.y, duration:0.1)) 
greenBlock.run(SKAction.moveTo(y:redBlock.position.y, duration:0.1)) 

次に、あなたが複数の場所でハードコード座標にありません。

+0

本当にありがとうございましたあなたは私にこの意味が分かりません –

関連する問題