현재로서는 내 볼과의 충돌을 감지하고 충돌했을 때 +1로 점수를 증가시키는 SKSpriteNode가 있습니다. 또한 충돌은 내 공이 벽을 치는지 감지하는 코드입니다.다른 충돌 감지를 방해하는 충돌 감지 - Swift
let scoreNode = SKSpriteNode()
scoreNode.size = CGSize(width: 750, height: 10)
scoreNode.position = CGPoint(x: self.frame.width/2, y: self.frame.height/2 + 100)
scoreNode.physicsBody = SKPhysicsBody(rectangleOfSize: scoreNode.size)
scoreNode.physicsBody?.affectedByGravity = false
scoreNode.physicsBody?.dynamic = true
scoreNode.physicsBody?.categoryBitMask = PhysicsCat.Score
scoreNode.physicsBody?.collisionBitMask = 0
scoreNode.physicsBody?.contactTestBitMask = PhysicsCat.Ball
scoreNode.color = SKColor.clearColor()
func didBeginContact(contact: SKPhysicsContact) {
let firstBody = contact.bodyA
let secondBody = contact.bodyB
if firstBody.categoryBitMask == PhysicsCat.Score && secondBody.categoryBitMask == PhysicsCat.Ball{
score += 1
scoreLbl.text = "\(score)"
firstBody.node?.removeFromParent()
}
else if firstBody.categoryBitMask == PhysicsCat.Ball && secondBody.categoryBitMask == PhysicsCat.Score {
score += 1
scoreLbl.text = "\(score)"
secondBody.node?.removeFromParent()
}
else if firstBody.categoryBitMask == PhysicsCat.Ball && secondBody.categoryBitMask == PhysicsCat.Wall || firstBody.categoryBitMask == PhysicsCat.Wall && secondBody.categoryBitMask == PhysicsCat.Ball{
enumerateChildNodesWithName("wallPair", usingBlock: ({
(node, error) in
node.speed = 0
self.removeAllActions()
}))
if died == false{
died = true
createBTN()
fallDie()
}
}
else if firstBody.categoryBitMask == PhysicsCat.Ball && secondBody.categoryBitMask == PhysicsCat.Wall {
enumerateChildNodesWithName("wallPair", usingBlock: ({
(node, error) in
node.speed = 0
self.removeAllActions()
}))
if died == false{
died = true
Ball.physicsBody?.velocity = CGVectorMake(0, 0)
createBTN()
}
}
}
위의 코드와 완전히 다른 두 번째 충돌 감지가 필요합니다 ^^. 어떻게 분리 할 수 있습니까? 당신 did not는 2 개의 didBeginContact 's를 품을 수 없다 나는 생각하지 않는다. 나는 이것이 너무 애매하거나 분명하지 않기를 바란다. 그래서 분명히 colorNode라고하는 두 번째 노드가 필요합니다. 공과 벽 사이의 충돌을 감지하는 코드를 엉망으로 만들지 않고 colorNode와 colorNode 사이의 충돌을 어떻게 감지합니까 (colorNode는 내 scoreNode 아래 약 200 픽셀이므로 동일한 위치에 있지 않습니다)?