Box2d Collision Impulses
Я хотел бы использовать импульс столкновения, чтобы вычислить ущерб, который получает каждый объект в столкновении. Пока у меня есть следующее:
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 секунды)? Если я получаю единственный импульс от столкновения двух объектов, что это означает?