c++ - SFML 组合可绘制对象

标签 c++ sfml

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

最佳答案

你可以做的是实现一个继承自 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);
    }
};

关于c++ - SFML 组合可绘制对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46310403/

相关文章:

c++ - 为什么在执行 "character + 1"时没有我告诉它这样做就发生了类型转换?

c++ - Qt:GraphicsView 中的 TextEdit,下方有奇怪的灰色条

c++ - 如何制作一个宏来在for循环中生成代码?

c++ - crtdbg 在使用 sf::Text::setOutlineThickness 时转储内存泄漏

c++ - 绘制 Sprite 导致 Segmentation Fault

c++ - SFML 在多线程中失败

c++ - CMake - 输出目录结构和 QML 模块

c++ - vector 初始化比数组慢......为什么?

c++ - SFML 中的段错误

c++ - SFML 网络和我 (C++)