Ускорение - это изменение скорости во времени. Таким образом, в 1D, чтобы применить постоянную скорость, вы должны сделать:
v += a * dt;
x += v * dt;
где:
a
- ускорение (постоянная)
v
- это скорость
x
- это позиция x
dt
- временной шаг, то есть время между обновлениями
Вы бы сделали нечто подобное для замедления, за исключением того, что a
теперь будет отрицательным.
Чтобы установить максимальную скорость, вам просто нужно выполнить условную проверку на v
, возможно:
v = MIN(v_max, v);
где v_max
- максимально допустимая скорость (постоянная).
В 2D необходимо учитывать направление движения:
x += v * cos(theta);
y += v * sin(theta);
Я оставлю это вам для расчета theta
...