0

我正在用 Java 开发一个小 Android 游戏,将 AndEngine 用于图形,将 Box2D 用于物理——特别是碰撞处理。我在类中有一些不同类型的带有构造函数的对象,如下所示:

MainActivity.java
Enemy.java
Npc.java
Door.java

我在主类中有一个静态的 PhysicsWorld,我正在从 Enemy 类中设置一个 ContactListener,以定义当一个敌人击中某物时会发生什么。然而,当我发现每个 PhysicsWorld 只有一个 ContactListener 时,我尝试为 Door 类设置另一个 ContactListener。

本质上,我的问题是:解决这个问题的最佳方法是什么?

我知道我可能已经解释得很糟糕,所以我很抱歉。

4

1 回答 1

3

你可以用你的单身ContactListener来管理整个世界;Contact.getFixtureA/B()将返回联系中涉及的灯具。您可以利用Fixture.getBody()获取Body与每个碰撞夹具的关联;例如,如果您的DoorEnemy对象Body作为用户数据与 s 相关联,那么您可以使用它Body.getUserData()来检索它。

于 2012-08-06T22:30:35.197 回答