1

我试图在box2d两个对象碰撞时删除一个对象。

当我的两个物体发生碰撞时,其中一个物体会从另一个物体上反弹。它确实删除了另一个对象,但我希望它让它看起来像是经过而不是反弹。

我将身体 Def 类型设置为b2_staticBody.

4

1 回答 1

2

您应该将身体的固定装置设置为传感器:

fixture->SetSensor(true);

然后,您创建一个接触侦听器 ( class MyContactListener : public b2ContactListener),它在 BeginContact 方法中检测碰撞并检查其中一个碰撞对象是否属于这种特殊类型。这样做的一个好方法是使用以下两种方法:

/// Get the user data pointer that was provided in the body definition.
void* GetUserData() const;

/// Set the user data. Use this to store your application specific data.
void SetUserData(void* data);

你需要对 C++ 有点熟悉才能成功。

于 2010-02-19T21:26:12.700 回答