2012-06-16 3 views
12

몸체가 다른 몸체와 충돌하지만이 충돌에 반응하지 않는 방법을 감지하는 방법.충돌을 어떻게 탐지 하나 box2d에서 충돌하지 않습니까?

기본값 i - 충돌 및 신체 충돌을 감지합니다.

fixtureDef 필터를 설정하면 본문이 충돌하지 않지만 충돌을 감지 할 수 없습니다.

도와주세요.

+3

센서에 대해 더 자세히 읽어보십시오. http://www.box2d.org/manual.html – Cyclonecode

답변

18

조명기가 어떤 것과도 충돌 할 필요가 없다면 센서로 만들 수 있습니다. 충돌이있는 항목에 따라 충돌 수신기의 PreSolve에서 "SetEnabled (false)"라고 할 수 있습니다.

+0

부록 : PreSolve를 사용하는 대신 충돌 마스크 및/또는 충돌 그룹을 사용하여 정착물은 충돌해야하며 충돌해서는 안됩니다. – Thomas

+0

그는 여전히 충돌이 발생했을 때이를 감지하기를 원합니다. 그는 단지 충돌 응답을 원하지 않습니다. 충돌 마스크를 변경하면 충돌 감지를 완전히 방지 할 수 있습니다. – iforce2d

+0

참. 센서 고정 장치와 결합해야합니다. – Thomas

8

본체에 센서 고정물이 필요하십니까? box2d 매뉴얼에서 :

때로는 게임 로직이 두 개의 조명기가 겹치지 만 콜리 전 응답이 없어야 할 때를 알아야 할 때가 있습니다. 이것은 센서를 사용하여 수행됩니다. 센서는 충돌을 감지하지만 응답을 생성하지 않는 조명기입니다.

센서로 모든 조명기를 플래그 할 수 있습니다. 센서는 정적 또는 동적 일 수 있습니다. 당신은 신체 당 여러 개의 조명기를 가지고있을 수 있으며 센서와 고체 조명기를 혼합하여 사용할 수 있습니다.

센서는 접촉점을 생성하지 않습니다. 당신은 센서로 고정을 설정하고 쓸 수

  1. b2Contact :: IsTouching
  2. b2ContactListener :: BeginContact 및 EndContact 다음 센서의 상태를 얻을 수있는 방법은 두 가지가 있습니다 그것을 청취자에게 전달하십시오. 조명기의 센서 플래그가 참으로 설정되어 있으면 충돌을 물리적으로 시뮬레이트하지 않고 충돌 데이터를 제공합니다 (즉, 충돌하는 다른 모든 조명기와의 겹침을 테스트 할 수 있습니다).

    이것은 유용한 방법에 대한 유용한 자습서입니다. 센서를 사용하기 시작하려면 Ray Wenderlich sensor tutorial

관련 문제