如何在C ++中使用Box2D检测冲突

时间:2011-02-07 00:24:16

标签: c++ collision-detection box2d

我正在学习如何使用box2d,但我不明白碰撞是如何工作的。有人可以深入解释它们的工作原理。我查看了联系人听众的文档,但我只是模糊地理解它们,并且不知道如何实际使用它们。

1 个答案:

答案 0 :(得分:2)

这个想法是你可以通过继承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中获取有关它的所有信息。