Я пытаюсь сделать простую игру, в которой запускается космический корабль, а затем на его путь влияет гравитация планет.
Аналогично этой игре: http://sciencenetlinks.com/interactives/gravity.html
Я хотел бы знать, как повторить эффект, который планеты оказывают на космический корабль в этой игре, чтобы космический корабль мог «зацикливаться» на планете, чтобы изменить направление.
Мне удалось достичь некоторых фиктивных результатов, когда космический корабль зацикливается в огромном эллипсе вокруг планеты или лишь незначительно зависит от силы тяжести планеты с использованием Векторов.
Заранее спасибо.
PS У меня большой опыт программирования, но я не имею никакого отношения к разработке игр.
Каждая планета должна иметь гравитационное поле, которое притягивает любой объект в ее окрестностях к своему центру. Другими словами, вы должны применять силу от положения космического корабля к центру планеты на каждом этапе симуляции.
Эта сила зависит от массы обоих объектов, но в этом случае, поскольку масса космического корабля, вероятно, незначительна по сравнению с массой планеты, вы можете просто попробовать разные постоянные в зависимости от размера планеты, пока не получите правильное ощущение.
Самое главное, что эта сила становится слабее, чем больше расстояние между обоими объектами. Вы сделаете это, разделив квадратное расстояние между ними. После определенного расстояния вы можете «вручную» отсечь и прекратить применять силу.
Просто переведите эту силу в ускорение, и основные физические уравнения должны позаботиться об остальном.
В псевдокоде
источник