중간에 두 개의 원이있는 플랫폼이 하나 있습니다.SpriteKit - 여러 객체의 접촉 감지
상단에 원이 1 개 있습니다. 아래쪽에 하나의 원이 있습니다.
아래쪽 원이 화면 상단에 닿으면 NSLog 메시지를 쓰고 싶습니다.
위쪽 원이 화면 하단에 닿으면 NSLog 메시지를 쓰고 싶습니다.
circle1과 2가 categorybitmasks와 contactTestBitMasks를 갖도록 설정했습니다. 내가하는 모든 테스트는 상단 또는 하단 원이 화면 하단을 칠 때만 찾을 수 있지만 하단 원이 상단을 터치 한 시점을 감지하는 방법을 찾지 못합니다. 내 if 문을 시작했습니다.
-(void)didBeginContact:(SKPhysicsContact *)contact {
// If the top circle touches the bottom edge
if (contact.bodyA.categoryBitMask == bottomEdgeCategory) {
NSLog(@"This is the top ball touching the bottom edge");
}
}
모든 도움을 주시면 감사하겠습니다.
가능한 복제본 [Swift ClassCastException - SKPhysicsBody.node -> SKLabelNode. 왜?] (http://stackoverflow.com/questions/26316484/swift-classcastexception-when-skphysicsbody-node-sklabelnode-why) – rickster
중복 질문보기 : SpriteKit는 연락처를 임의의 순서로보고하므로 'bodyA'또는 ' bodyB'가 아래쪽 가장자리 일 수 있습니다. 또한 Starscream을 조심하십시오. – rickster
나는 그것을 보았고, 불행하게도이 시나리오에서 나와 답변을 제공하지 않는다 (그렇지 않으면 나는 게시하지 않을 것이다). 내가 혼란스럽게 생각하는 것은 두 개의 원과 두 개의 가장자리를 갖는 것이다. 어느 게 어느 건지? 어떻게 연락 할 수 있습니까? – MegaTron