тело движется вперед или назад box2d - PullRequest
1 голос
/ 22 февраля 2011

У меня есть b2_dynamicBody, который я перемещаю на _body->ApplyForce по экрану.

Как мне узнать, движется ли он вперед или назад?

Я знаю, как узнать скорость

b2Vec2 currentVelocity = _body->GetLinearVelocity();

float32 speed = currentVelocity.Normalize();

, но не вперед или назад.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2011

Скорость - это вектор, составленный из величины и направления.Обычно направление на оси обозначается знаком значения.

Я бы сказал, что вы можете сказать, что тело движется назад, если часть y скорости тела относительно скорости отрицательна.

0 голосов
/ 22 февраля 2011

Вы также можете получить скорость, используя currentVelocity.Length(), который не меняет значение.

Если вы определяете вперед как слева направо (увеличивая X), то ваше тело движется вперед, если currentVelocity.x> 0 и назад, если x <0. Если вперед - вверх, то y> 0 - вперед, y <0 - назад. </p>

...