Как осуществить притяжение частиц на LibGDX Box2D?
Пишу игру, используя физический движок box2d, который является частью libGDX. Необходимо сделать симуляцию того, что частицы притягиваются друг к другу по закону всемирного тяготения. Я решил решить эту задачу следующим образом: между каждыми двумя частицами я создаю DistanceJoint. Они притягиваются, но не так как надо. По закону всемирного тяготения, чем БОЛЬШЕ расстояние, тем МЕНЬШЕ сила притяжения. Но в моём случае происходит с точностью да наоборот. Теперь вопрос, как сделать так, чтобы сила притяжения частиц зависела обратно пропорционально? Может быть нужно использовать другой Joint, или какой-нибудь совершенно другой класс?
Ума не приложу нахер это нужно, но ладно. У объекта класса Body есть метод applyForce. Вектор силы считайте сами (если я правильно понял, то это будет что-то типа разности позиций) для каждого тела, точка приложения - центр масс (вроде бы даже метод специальный был, чтобы сразу к нему применять). Эту операцию нужно будет повторять до тех пор, пока действует сила.
Вот это ещё почитайте: iforce2d.net/b2dtut/forces
Ну и что-то по теории вообще. Выбор огромен.