Love2d и радиальная гравитация


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

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

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

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

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

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

1 6

1 ответ:

Я нашел, как это сделать, используя библиотеку HAMP.

Вот так.

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())