Как остановить поиск (рулевое управление) орбитальной цели в Box2D?

Итак, в настоящее время у меня очень простое поведение рулевого управления в моей игре. Один объект преследует другой. Проблема в том, что преследующий объект в конечном итоге бесконечно вращается вокруг другого объекта. Есть ли способ решить это в box2d? Прямо сейчас все, что у меня есть, это линейное демпфирование, которое замедляет его, когда он приближается, что помогает, но я действительно хочу убить импульс, чтобы он мог немедленно изменить направление, как в шаге 7 этого урока: http://code.tutsplus.com/tutorials/hit-the-target-with-a-deadly-homing-missile--active-8933 ... кроме Box2D.


person Jack Jacques    schedule 10.01.2015    source источник


Ответы (2)


Может быть, что-то вроде этого:

if(//on target area){
setLinearVelocity(0f,0f);
setAngularVelocity(0f);
steeringBehavior = null;
}

P.S. Возможно, вместо этого вы можете использовать поведение Прибытие (у него есть перетаскивание, чтобы остановиться на цели)

person Andrei Yusupau    schedule 22.03.2015
comment
Прибытие было похоже на то, что я использовал, но это было не совсем то, что я хотел. Спасибо хоть - person Jack Jacques; 09.04.2015

В конце я использовал метод setLinearDamping(), который замедлял преследователя по мере его приближения.

person Jack Jacques    schedule 09.04.2015