Похоже, что ваша модель использует обычную систему координат (положительные координаты y указывают вверх), и вам необходимо перевести ее в экранную систему координат (положительные координаты y указывают вниз).
При копировании модели / положения Box2Dданные в любой sf :: Drawable, преобразуйте вручную между моделью и системой координат экрана:
b2Vec2 position = body->GetPosition();
sprite.SetPosition( position.x, window.GetHeight() - position.y )
Вы можете скрыть это в классе или функции-обертке, но он должен находиться между моделью и средством визуализации какПре-рендеринг преобразования.Я не вижу места, чтобы установить это в SFML.
Я думаю, у Box2D есть нужная вам система координат;просто установите вектор гравитации на основе вашей модели (0, -10) вместо экрана.