2010-02-19 116 views
1

我想在两个对象碰撞时删除box2d中的一个对象。如何清除box2d中碰撞对象的反弹?

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

我有我的身体Def类型设置为b2_staticBody

回答

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++有所了解才能将其脱落。