그래서 저는 두 개의 SKPhysicsBody
물체 로 작업하려고 합니다. 충돌 역학을 다루고이를 처리하는 데 도움이되는 몇 가지 튜토리얼을보고있었습니다.
튜토리얼 중 하나에서이 코드를 가져 왔습니다.
func didBeginContact(contact: SKPhysicsContact) {
var firstBody: SKPhysicsBody
var secondBody: SKPhysicsBody
if contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask {
firstBody = contact.bodyA
secondBody = contact.bodyB
} else {
firstBody = contact.bodyB
secondBody = contact.bodyA
}
if ((firstBody.categoryBitMask & ColliderType.Bird != 0) &&
(secondBody.categoryBitMask & ColliderType.Edge != 0)) {
birdCollideWithEdge(firstBody.node as SKSpriteNode)
}
}
내 ColliderType
설정은 다음과 같습니다.
enum ColliderType:UInt32 {
case Bird = 1
case Edge = 3
}
내가 얻는 오류는 다음 줄에서 비롯됩니다.
if ((firstBody.categoryBitMask & ColliderType.Bird != 0) &&
(secondBody.categoryBitMask & ColliderType.Edge != 0))
오류는
제공된 인수를 허용하는 '&&'에 대한 오버로드를 찾을 수 없습니다.
나는 캐스팅 해봤 0
로 UInt32
또한 캐스팅 firstBody.categoryBitMask & ColliderType.Bird
으로 Int
하지만 도움이되지 않았다.
나는 또한 firstBody.categoryBitMask & ColliderType.Bird
그것 에서 꺼내어 그것을 자신의 변수로 설정 하려고 시도 했습니다. if 문에 너무 많은 일이 있었지만 아무것도 고치지 못했습니다.
누구든지 현재 설정에서 작동하지 않는지 알려주거나 도움이 될 수있는 올바른 문서로 나를 밀어 붙일 수 있습니까?
미리 감사드립니다
편집 : rawValue
끝에 추가하면 ColliderType.Bird
내 오류가 수정되었습니다.
당신이 사용할 수있는 rawValue
당신의 enum
이 방법 :
if ((firstBody.categoryBitMask & ColliderType.Bird.rawValue != 0) && (secondBody.categoryBitMask & ColliderType.Edge.rawValue != 0)) {
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다