我希望我能清楚地知道我想用Box2D为我的游戏做些什么。我有其他实体MotherCellEntity
s)将碰撞的主要实体(VirusEntity
)。我想要的是当VirusEntity
与MotherCellEntity
联系时,我将布尔movementAllowed
设置为false
,并从那里再次移动,并且Box2D
我不知道如何实现这一目标。
我尝试使用ContactListener
,但我只能通过World
对象设置一个,这限制了我。我已经使用Filter
来防止VirusEntity
与该类的另一个实例发生冲突。
一些代码:
// Only one instance of ContactListener is allowed for the world.
world.setContactListener(new ContactAdapter() { // ContactAdapter is a personal class.
@Override
public void beginContact(Contact contact) {
Body bodyA = contact.getFixtureA().getBody();
Body bodyB = contact.getFixtureB().getBody();
if (bodyA == mother.getBody() || bodyB == mother.getBody()) movementAllowed = false;
}
});
可能有些东西可以告诉我,但我想不出搜索条件。如果您可以为我提供这样做的方式,或者将我链接到其他资源,我将不胜感激。
---- 修改 ----
什么是好的基本上是检查任何Contact
的方法。
// One of these examples exist somewhere?
<instanceof Body>.getContactList();
<instanceof Fixture>.getContactList();