ios - SpriteKit : 전체 노드 겹침 감지

기사 출처 ios sprite-kit skphysicsbody sknode

두 개의 SKShapeNode가 있습니다. 하나는 에지 기반 SKPhysicsBody가 있고 다른 하나는 볼륨 기반이며 충돌없이 교차로를 감지하고 싶습니다. SKPhysicsContactDelegate 접촉 메서드가 다른 하나를 통과 할 때 호출되는 SKPhysicsContactDelegate 접촉 메서드가 제대로 작동하지만, 내 문제는 한 몸체가 다른 몸체 안에 완전히 포함되어 있어도 가장자리가 더 이상 교차하지 않을 때 didEndContact가 호출된다는 것입니다. 가장자리 교차뿐만 아니라 실제 접촉 또는 겹침을 결정하는 가장 좋은 방법은 무엇입니까? 나는 usesPreciseCollisionDetection를 시도했지만 아무 소용이 없습니다.
CGPoint locObj1 = [sprite1 locationInNode:self];
CGPoint locObj2 = [sprite2 locationInNode:self];

if([sprite1 containsPoint: locObj2]) return;
if([sprite2 containsPoint: locObj1]) return;


이것을 didBeginContact 및 didEndContact의 시작 부분에 추가하십시오. 이것은 노드 중 하나에 다른 노드가 포함되어 있는지 확인합니다. 그렇다면 didBeginContact 및 didEndContact가 부주의하게 호출되는 문제를 완화 할 수있는 아무 작업도 수행하지 않습니다. 나는 내 Mac에 있지 않으므로 약간의 구문을 사용해야 할 수도 있습니다. 이것이 당신을 올바른 방향으로 보내길 바랍니다.

이 질문에 대해 Stack Overflow에서 비슷한 토론을 찾았습니다: https://stackoverflow.com/questions/24412487/

관련 기사
ios - Swift에서 두 개의 CGFloat의 최소값을 얻으려면 어떻게해야합니까? [복제]
ios - 루프에서 사전에 객체를 추가하면 이전 값을 덮어 씁니다.
ios - CoreData에서 타임 스탬프로 저장되는 NSDate
ios - iOS TableView는 모든 셀에 동일한 개체를 표시합니다.
ios - IOS UITableViewCells 모두 첫 번째 셀에서 뒤죽박죽, Iphone5S 장치 만 해당, 64 비트 시뮬레이터
ios - XAMARIN의 UIScrollView에서 UIView 제거
ios - 사용되지 않는 AudioSessionSetProperty 대체
ios - iAd에 광고가 표시되지 않음
ios - UISearchDisplayDelegate 메서드가 호출되지 않았습니다.
ios - Parse.com 저장 이미지 IOS