Хорошо, давайте сначала рассмотрим реалистичную проблему и посмотрим, почему это не работает и как мы должны отличаться от нее. В космосе, пока ваши двигатели горят, вы будете ускоряться. Ваша скорость ограничена только вашим топливом (и на самом деле вы можете ускоряться быстрее, когда вы потратили немного топлива, потому что вы двигаетесь меньше массы).
Чтобы дать этой модели эффективную максимальную скорость, вы можете рассматривать частицы в космосе, замедляющие вас и вызывающие трение. Чем быстрее вы движетесь, тем больше частиц вы бьете, и тем быстрее вы бьете по ним, так что в конечном итоге при достаточно высокой скорости вы будете бить достаточно частиц, и количество замедления, которое они совершают, точно сводит на нет величину ускорения вашего двигателя. делает.
Эта реалистичная модель НЕ звучит так, как вы хотите. Причина в том, что вы должны ввести трение. Это означает, что если вы выключите свои двигатели, вы автоматически начнете замедляться. Вы, вероятно, можете считать это одной из непреднамеренных сил, которые вам не нужны.
Это оставляет нам снижение эффективной силы вашего двигателя до 0 при достижении определенной скорости. Теперь имейте в виду, что если вы движетесь с максимальной скоростью в северном направлении, вы все же хотите, чтобы сила могла подтолкнуть вас в восточном направлении, поэтому ваши двигатели не должны отключаться только с необработанной скоростью, а должны основываться на скорости вашего двигаясь в направлении, указанном вашими двигателями.
Итак, по математике:
Вы хотите сделать крестик точечное произведение между вектором наведения вашего двигателя и вектором скорости, чтобы получить эффективную скорость в направлении, указанном вашими двигателями. Если у вас есть эта скорость, скажем, 125 миль в час (с максимальной скоростью 150), вы можете уменьшить силу ваших двигателей до (150-125) / 150 * (Force of Engines).
Это кардинально изменит график скорости, показывающий, сколько времени вам понадобится, чтобы разогнаться до полной скорости. По мере приближения к полной скорости ваши двигатели становятся все менее и менее мощными. Проверьте это и посмотрите, хотите ли вы этого. Другой подход состоит в том, чтобы просто сказать Force of Engines = 0, если скалярное произведение> = 150, в противном случае это полная сила. Это позволит вам линейно ускоряться до максимальной скорости, но не дальше.
Теперь, когда я думаю об этом, эта модель не идеальна, потому что вы могли бы разогнаться до 150 миль в час в северном направлении, а затем повернуть на восток и разогнаться до 150 миль в час, двигаясь в этом направлении, в общей сложности 212 миль в час в направление на северо-восток, поэтому не идеальное решение.