MyTetra Share
Делитесь знаниями!
Box2D: Как задать начальный импульс телу
Время создания: 25.11.2017 15:35
Текстовые метки: box2d, импульс, вектор
Раздел: Компьютер - Программирование - Физические движки - Box2D
Запись: xintrea/mytetra_syncro/master/base/1511613338itka5lyav2/text.html на raw.github.com

Самый простой метод придания импульса телу такой:


  • Создать вектор импульса
  • Применить вектор импульса к точке, где находится тело


Код такой:


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);


 
MyTetra Share v.0.65
Яндекс индекс цитирования