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(正是你請求的語法)一樣。 –
好的,謝謝! –