RenderWindow::Draw
принимает объект типа абстрактного класса Drawable
. Это означает, что теоретически вы можете просто сделать ваш Body
класс дочерним для Drawable
и перегружать некоторые виртуальные методы, чтобы он отображался.
Но, похоже, это не так. Документы для Drawable
показывают, что в этом классе есть только одна виртуальная функция: деструктор. Что ... вроде глупо.
Однако внешность может быть обманчива. Я проверял документацию 2.0 , чтобы узнать, выяснили ли они, как правильно создать иерархию наследования, и оказалось, что у них do есть виртуальные методы для переопределения. Просто они все частные (что само по себе хорошо, и на самом деле очень хорошо), и парни из SFML не сказали Doxygen, чтобы они сгенерировали документацию для частных членов. Я подал им сообщение об этом.
Пока они не обновят свои документы, единственное, что я могу сказать, - это посмотреть на заголовок и, возможно, исходный код Sprite и попытаться выяснить, как правильно создать производный класс Drawable.