1
我想将sf:RectangleShape和sf :: Text合并为一个可绘制对象,这样我只需为两个对象调用函数mWindow.draw()一次。可能吗?SFML合并可绘制对象
我想将sf:RectangleShape和sf :: Text合并为一个可绘制对象,这样我只需为两个对象调用函数mWindow.draw()一次。可能吗?SFML合并可绘制对象
你可以做的是实现一个继承自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);
}
};
非常感谢您的回答!但是,如何使用该功能? target.draw(窗口)? –
@NotImportant:你不直接调用这个函数。它由'sf :: RenderWindow :: draw'使用。所以你创建一个'BoxAndText'对象,然后调用'mWindow.draw(object)',就像你用任何其他drawable(正是你请求的语法)一样。 –
好的,谢谢! –