2016-09-04 4 views
0

나는이 게임을 다른 사람을 상대로 피구 게임을하는 곳으로 만들고 있습니다. 문제는 내가 만질 때 패들리가 움직이지 않는다는 것입니다. 패들을 터치하면 움직이지만 패들도 움직입니다. 무엇을 할 수 있습니까?두 플레이어가 접촉했을 때 어떻게 움직 이도록 할 수 있습니까?

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    let touch = touches.first 
    let touchLocation = touch!.locationInNode(self) 


    let touchi = touches.first 
    let touchLocationi = touchi!.locationInNode(self) 
    if let body = physicsWorld.bodyAtPoint(touchLocation) { 
     if body.node!.name == PaddleCategoryName { 
      print("Began touch on paddle") 
      isFingerOnPaddle = true 
     } 
    } 
    if let otherBody = physicsWorld.bodyAtPoint(touchLocationi) { 
     if otherBody.node!.name == PaddleyName { 
      print("EL otro toco") 
      isFingerOnPaddlei = true 
     } 
    } 
} 
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    isFingerOnPaddle = false 
    isFingerOnPaddlei = false 
} 

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) { 

    if isFingerOnPaddle { 
     // 2 
     let touch = touches.first 
     let touchLocation = touch!.locationInNode(self) 
     let previousLocation = touch!.previousLocationInNode(self) 
     // 3 
     let paddle = childNodeWithName(PaddleCategoryName) as! SKSpriteNode 
     // 4 
     var paddleY = paddle.position.y + (touchLocation.y - previousLocation.y) 
     var paddleX = paddle.position.x + (touchLocation.x - previousLocation.x) 
     // 5 
     paddleY = max(paddleY, paddle.size.width/2) 
     paddleY = min(paddleY, size.height - paddle.size.height/2) 
     paddleX = max(paddleX, paddle.size.height/2) 
     paddleX = min(paddleX, size.height - paddle.size.width/2) 
     // 6 
     paddle.position = CGPoint(x: paddleX, y: paddleY) 

     if isFingerOnPaddlei { 

     let paddlei = childNodeWithName(PaddleyName) as! SKSpriteNode 


     // 4 
     var paddleS = paddlei.position.y + (touchLocation.y - previousLocation.y) 
     var paddleU = paddlei.position.x + (touchLocation.x - previousLocation.x) 
     // 5 
     paddleS = max(paddleS, paddlei.size.width/2) 
     paddleS = min(paddleS, size.height - paddlei.size.height/2) 
     paddleU = max(paddleU, paddlei.size.height/2) 
     paddleU = min(paddleU, size.height - paddlei.size.width/2) 
     // 6 
     paddlei.position = CGPoint(x: paddleU, y: paddleS) 

     } 




    } 


} 

}

+1

if ifFingerOnPaddlei {..}'를 다른 if 문 외부로 이동해보십시오. – 0x141E

+0

감사합니다. –

답변

0

if isFingerOnPaddleif isFingerOnPaddle을 알리는 if 문에 있습니다. 두 번째 if 문은 중첩되어 있기 때문에 결코 호출되지 않으며 두 문은 동시에 참이되어서는 안됩니다.

+0

감사합니다. –