SFML组合可绘制对象

时间:2017-09-19 22:06:25

标签: c++ sfml

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

1 个答案:

答案 0 :(得分:1)

您可以做的是实现一个继承自sf::Drawable的类,并覆盖draw函数以绘制矩形和文本。你的渲染窗口将处理其余的事情。

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);
    }
};