6

box2dに放射状重力を追加することに関する興味深い記事を見つけました。

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

これをluaに移植するには、距離の2乗を計算し、距離を正規化する必要があります。

Love2dには適切なベクトルを抽出する機能がないようですが、これは残念です。

私の数学が不足していて、誰かが私を助けることができない限り。

私はいつでもbox2dに切り替えることができますが、love2dはきちんとした解決策のようでした。

4

1 に答える 1

5

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())
于 2011-01-26T17:56:52.900 に答える