2011-01-25 3 views
5

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

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

К порту этого на Lua, хотя мне нужно рассчитать расстояние в квадрате и нормализовать расстояние.

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

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

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

ответ

4

Я нашел, как это сделать, используя библиотеку 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()) 
Смежные вопросы