我想利用碰撞的冲动来计算碰撞中每个物体所造成的伤害。到目前为止,我有以下内容:
void FMContactListener::PostSolve(b2Contact* contact, const b2ContactImpulse* impulse) {
// Can be up to 2 for polygon collision
int count = contact->GetManifold()->pointCount;
// My two sprites in the collision
CCSprite *spriteA = (CCSprite*)contact->GetFixtureA()->GetBody()->GetUserData();
CCSprite *spriteB = (CCSprite*)contact->GetFixtureB()->GetBody()->GetUserData();
for (int i = 0; i < count; ++i) {
b2ManifoldPoint point = contact->GetManifold()->points[i];
// This is the impulse at this point
float impulse = point.normalImpulse;
}
}
这给了我每次调用PostSolve对冲突中每个点的冲动。
我不是物理学生,但是每个对象都没有自己的冲动,因为它在box2d步骤(比如1/60秒)的动量变化?如果我从两个物体的碰撞中得到一个冲动,这意味着什么?