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)
}
}
}
}
if ifFingerOnPaddlei {..}'를 다른 if 문 외부로 이동해보십시오. – 0x141E
감사합니다. –