У меня есть оружие, которое отскакивает от следующего врага, когда он попадает.Box2d - Проблемы расчета импульсов со скоростью и углом
я сначала начинаю путем вычисления дельты и получать угол:
float deltaX = e->m_body->GetPosition().x - m_body->GetPosition().x;
float deltaY = e->m_body->GetPosition().y - m_body->GetPosition().y;
float angle = atan2((deltaY), deltaX) * 180/M_PI;
Затем я преобразовать угол к вектору и умножить его на 15 (скорость снаряда):
b2Vec2 vec = b2Vec2(cos(angle*M_PI/180),sin(angle*M_PI/180));
vec *= 15.0f;
Наконец, я применяю импульс к телу:
m_body->ApplyLinearImpulse(vec, m_body->GetPosition());
проблема заключается в том, что вектор мю чтобы быть уверенным, что пуля не идет в правильном направлении. Если я просто выдаю угол следующему врагу, он имеет тенденцию выводить угол, который выглядит правильно, поэтому проблема должна заключаться в преобразовании в вектор.