SFML 组合可绘制对象

SFML combine drawable objects

我想将 sf:RectangleShape 和 sf::Text 合并到一个可绘制对象中,这样我只需为这两个对象调用函数 mWindow.draw() 一次。可能吗?

你可以做的是实现一个继承自 sf::Drawable 的 class,并覆盖 draw 函数来绘制矩形和文本。您的渲染 window 将处理其余部分。

class BoxAndText : public sf::Drawable
{
public:
    sf::RectangleShape rect;
    sf::Text text;
private:
    void draw(sf::RenderTarget& target, sf::RenderStates states) const override
    {
        target.draw(rect, states);
        target.draw(text, states);
    }
};