碰撞后强制应用于box2d对象

时间:2011-08-01 10:07:09

标签: box2d

我有一个抛射物和一个塔。当我投掷射弹时它击中了塔。基于弹丸力,塔架被打破。现在我需要知道如何在碰撞时(不是在碰撞之前,而是在碰撞之后)获得应用于这两个物体的力。我知道用以下方法计算它们 -

void MyContactListener::PostSolve(b2Contact* contact, const b2ContactImpulse *impulse)
{
    force=impulse->normalImpulses[0];
}

这给了我施加的整体力,但我想知道应用于2个不同物体的个别力。

另一个问题,这个方法驻留在b2ContactListener类的子类中。如何将此值传递给gameScene,其中对象将被销毁。

1 个答案:

答案 0 :(得分:1)

  1. 同样的冲动适用于两个身体(当然是相反的方向)。

  2. 您需要拥有一个对PostSolve回调以及您需要使用它的任何其他地方都可见的变量 - 可以使用全局变量或类变量。