Эта функция, к сожалению, не встроена в 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);
Я сделал быстрый пример, используя flash и библиотеку, которую я написал под названием QuickBox2D. Это может быть не очень полезно, поскольку синтаксис сильно отличается от библиотеки C ++ Box2D, но основной принцип такой же. Это также не идеальный пример, но он может помочь вам начать.
См. Пример Flash