Love2d и радиальная гравитация - PullRequest
6 голосов
/ 25 января 2011

Я нашел интересную статью о добавлении радиальной гравитации в box2d.

http://www.vellios.com/2010/06/06/box2d-and-radial-gravity-code/

Чтобы перенести это в lua, нужно вычислить квадрат расстояния и нормализовать расстояние.

Кажется, что у Love2d нет функций для извлечения соответствующего вектора, что является позором.

Если у меня нет математики и кто-то может мне помочь.

Я могувсегда переключайтесь на box2d, но love2d выглядело как изящное решение.

1 Ответ

5 голосов
/ 26 января 2011

Я нашел, как это сделать с помощью библиотеки HUMP.

Вот так.

ship = bodies[1]
shipVec = vector(ship:getX(),ship:getY())
planet = bodies[2]
planetVec = vector(planet:getX(),planet:getY())
distance = planetVec – shipVec
force = 250 / distance:len2()
normforce = force*distance
bodies[1]:applyImpulse(normforce.x, normforce.y,ship:getX(),ship:getY())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...