2017-10-09 142 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; 
    } 
}