2012-02-25 2 views
1

Я использую Box2d для имитации пространства сверху вниз, такого как окружающая среда. У меня есть объект, который использует импульс и будет летать (через космос) рядом с «планетой». Сам мир не имеет гравитации, но я бы хотел создать планеты и звезды с индивидуальной гравитацией, чтобы другие динамические объекты падали/тянулись к ним. Как я могу это достичь?Box2d - Притяжение объекта/гравитация

+2

Это может помочь: http://stackoverflow.com/questions/6758060/simulate-newtons-law-of -универсальным-гравитационно-используя-Box2D – iforce2d

ответ

1

Если у вас есть небольшое количество тел/звезд, вы можете просто применять силы тяжести к своим телам каждый раз перед вызовом функции Step().

Но я думаю, что это станет очень медленным, если система станет большой. Если ваши звезды и планеты не двигаются, вы можете предварительно вычислить общую силу силы тяжести в каждой точке 2D-пространства. Сохраните эти предварительно рассчитанные значения силы тяжести в некоторых 2D-массивах (с некоторым шагом), а затем примените силы из этой таблицы поиска.

Смежные вопросы