我正在学习如何使用box2d,但我根本不了解碰撞是如何工作的。有人可以深入解释其工作方式吗?我看过有关联系人侦听器的文档,但是我只是模糊地理解它们,也不知道如何实际使用它们。

最佳答案

这个想法是,您可以通过继承b2ContactListener来实现自己的侦听器。像这样:

class MyListener : public b2ContactListener {
    virtual void Add (b2ContactPoint *point);
    virtual void Persist (b2ContactPoint *point);
    virtual void Remove (b2ContactPoint *point);
    virtual void Result (b2ContactPoint *point);
};

MyListener必须定义这些功能。首先,您可以让他们打印一些调试文本。
然后,您告诉Box2D您要使用此侦听器,如下所示:
MyListener listener;
yourB2World->SetContactListener(&listener);

现在,侦听器将为每个冲突获取一个回调,有关此冲突的所有信息都在b2ContactPoint中。

关于c++ - 如何在C++中使用Box2D检测碰撞,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4917197/

10-11 22:44
查看更多