В программе у меня есть движущиеся объекты. Их скорости описываются вектором (x, y).
Итак, я хочу, чтобы объекты замедлялись - если они получают скорость, например, из-за столкновения, я масштабирую их в следующих кадрах (с коэффициентом 0,999), пока они не остановятся, потому что скорость настолько мала, что вы не можете видеть их движущимися (java получает до 1e-50 или sth, как это).
Его работа, но на самом деле это не так, потому что, уменьшая их, они никогда не остановятся в теории. Итак, как я могу позволить скорости перейти к нулю, и пусть она REACH равна нулю?
Просто установите его равным нулю, как только он опустится ниже некоторого порога:
if (velocity.magnitude() < threshold) {
velocity = new Vector(0, 0);
}
Это, однако, в конечном итоге произойдет само по себе из-за арифметической недостаточности.