回答:
Box2Dマニュアルの衝突フィルタリングについて読んでください:
衝突フィルタリングを使用すると、器具間の衝突を防ぐことができます。たとえば、自転車に乗るキャラクターを作るとします。自転車を地形に衝突させ、キャラクターを地形に衝突させたいが、キャラクターを自転車に衝突させたくない(それらはオーバーラップする必要があるため)。Box2Dは、カテゴリとグループを使用したこのような衝突フィルタリングをサポートしています。
Box2Dは16の衝突カテゴリをサポートします。各器具について、それが属するカテゴリを指定できます。このフィクスチャが衝突する可能性のある他のカテゴリも指定します。たとえば、マルチプレーヤーゲームで、すべてのプレーヤーが互いに衝突せず、モンスターが互いに衝突しないように指定できますが、プレーヤーとモンスターは衝突する必要があります。
マニュアルへのリンクはこちら。(フィルタリングの検索)。
互いに衝突してはならない2種類のオブジェクトがある場合、次のように機能します。
var kindA = -1;
var kindB = -2;
var bodyDef = new b2BodyDef();
var body = world.CreateBody(bodyDef);
var fixtureDef = new b2FixtureDef();
fixtureDef.shape = new b2Shape();
fixtureDef.filter.groupIndex =
entity instanceof EntityA
? kindA
: kindB;
body.CreateFixture(fixture);