残念ながら、この機能は Box2D には組み込まれていません。最も簡単な方法は、重力井戸と剛体の間の角度と距離を取得し、それに応じて体の速度を設定することです。
角度を取得するには:
double dx = rigidBodyX - gravityWellX;
double dy = rigidBodyY - gravityWellY;
double angle = atan2(dy, dx);
// angle is in radians, use atan2(dy, dx) / PI * 180 if
// you need degrees
距離を取得するには:
double dx = rigidBodyX - gravityWellX;
double dy = rigidBodyY - gravityWellY;
double dist = sqrt(dx * dx + dy * dy);
フラッシュと、私が作成した QuickBox2D というライブラリを使用して、簡単な例を作成しました。構文が C++ Box2D ライブラリと大きく異なるため、あまり役に立たないかもしれませんが、基本的な原則は同じです。これも完璧な例ではありませんが、手がかりになるかもしれません。
フラッシュの例を見る