2013-06-01 3 views
0

동일한 프로젝트에 둘 이상의 사용자 정의 b2ContactListener를 추가 할 수 있으면 알려주십시오. 공이 벽, 벽돌 및 패들과 충돌 할 때 충돌 응답을 처리하는 내 Ball 클래스에 대한 사용자 지정 b2ContactListener가있는 Brick Breaker 게임에서 작업 중입니다. Brick 클래스의 두 번째 b2ContactListener를 생성하여 볼과 충돌했는지 확인하고 자체 내부 작업을 수행 할 수 있습니다. 예를 들어 벽돌이 가져온 안타 수, 사운드 재생, 벽돌 파괴 사운드, 애니메이션 파괴 등이 있습니다.동일한 프로젝트에 여러 개의 b2ContactListener가 있습니다.

Box2D가 동일한 프로젝트에서 복수의 b2ContactListeners를 가질 수 있는지 확신 할 수 없습니다. 하나만 실행되기 때문에 어느 것이 든 마지막으로 world->SetContactListener(contactListener1);을 통해 설정됩니다. 나는 지금 몇 시간 동안 인터넷 검색을 해왔지만 대답을 찾지 못했습니다.

알려 주시기 바랍니다.

+0

하나의 b2World는 하나의 연락처 수신자 만 가질 수 있습니다. 해당 리스너가 다양한 유형의 오브젝트에 대한 모든 충돌을 처리하게 할 수 있습니다. – iforce2d

+0

iforce2d 고마워요. Box2d 라이브러리 파일을 살펴 보았고 SetContactListener 메소드의 내부 변수를 '무언가 관리자'라고 부릅니다. 모든 ContactListeners를 추적하는 일종의 스택이 있다고 가정 한 이후에 조금 벗어났습니다. – badboy11

답변

0

b2World 당 하나의 ContactListener 만있을 수 있다는 것을 분명히하기 위해 다시 iforce2d에 감사드립니다.

관련 문제