Pregunta

Encontré un artículo interesante sobre cómo agregar gravedad radial a Box2d.

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

Para portar esto a Lua, aunque necesito calcular la distancia al cuadrado y normalizar la distancia.

Love2D no parece tener las funciones para extraer el vector apropiado, lo cual es una pena.

A menos que falte mis matemáticas y alguien pueda ayudarme.

Siempre puedo cambiar a Box2d, pero Love2D parecía una solución ordenada.

¿Fue útil?

Solución

Descubrí cómo hacerlo usando la biblioteca Hump.

Como esto.

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())
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top