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 секунды)? Если я получаю единственный импульс от столкновения двух объектов, что это означает?

0 ответов

Другие вопросы по тегам