有人可以解释一下使用 box2d for android 进行碰撞检测的工作方式吗?我无法理解 BBContactListener 的工作方式。

BBContactListener listener = new BBContactListener();
world = new BBWorld(gravity, doSleep);
world.SetContactListener(listener);

如何使用那个监听器?我应该扩展标准来创建我自己的还是如何创建的?

最佳答案

我没有将 box2d 用于 android,但我认为那里的想法是一样的。您必须实现联系人处理方法。这就是在 C++ 中做到这一点的方法。

class ContactListener : public b2ContactListener
{
public:
    ContactListener();
    ~ContactListener();

    void BeginContact(b2Contact *contact) {...}
    void EndContact(b2Contact *contact) {...}
    void PreSolve (b2Contact *contact, const b2Manifold *oldManifold) {...}
    void PostSolve (b2Contact *contact, const b2ContactImpulse *impulse) {...}
};

然后将这个类传递给“b2World”

关于java - 使用 Box2d(适用于 Android)进行碰撞检测?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8951392/

10-09 04:39