Самый простой метод придания импульса телу такой:
- Создать вектор импульса
- Применить вектор импульса к точке, где находится тело
Код такой:
b2Vec2 force = b2Vec2(10, 10);
ballBody->ApplyLinearImpulse(force, ballBodyDef.position);
Согласно документации, сила, крутящий момент, импульс и угловой импульс применяются просто к точке симулируемого пространства. Чаще всего удобнее применять эти воздействия к точке, в которой находится центр масс нужного тела.
Вот примеры возможных воздействий:
void ApplyForce(const b2Vec2& force, const b2Vec2& point);
void ApplyTorque(float32 torque);
void ApplyLinearImpulse(const b2Vec2& impulse, const b2Vec2& point);
void ApplyAngularImpulse(float32 impulse);