2017-10-09 10 views
0

私の問題を検出しません:BOX2Dセンサは接点

武器の体は、私はそれがフィクスチャセンサーです作るときの連絡先を検出立ち止まりました。

ContactListenerコード:

void preSolve(contact: Contact, oldManifold:Manifold){ 

     switch (fixA.getFilterData().categoryBits | fixB.getFilterData().categoryBits) { 
      case Game.WEAPON_BIT | Game.ENEMY_BIT: bodyDeleteList.add(contact.getFixtureA().getBody()); 
      System.out.println("Contact!"); // this never prints 
      break; 
     } 
} 

私は身体器具定期的(コメントfixtureDef.setFixtute(真))作るすべてが大きくなり、接点が発生し、検出します。

ドキュメントは言う:

/**センサーの形状は、連絡先情報を収集しますが 衝突応答を生成することはありません。 */

しかし、そうではありません。だから多分私は何かを忘れた。

答えて

1

このコードをbeginContact(..)メソッドに追加して解決しました。

センサーはbeginContact(..)という連絡先情報しか収集していません。

void beginContact(contact: Contact){ 

    switch (fixA.getFilterData().categoryBits | fixB.getFilterData().categoryBits) { 
      case Game.WEAPON_BIT | Game.ENEMY_BIT: bodyDeleteList.add(contact.getFixtureA().getBody()); 
      System.out.println("Contact!"); // this prints 
      break; 
    } 
} 
関連する問題