有什么办法可以将我拥有的所有文字或某些指定的文字全部设置为相同的字体,颜色等?
这样做会更快,更轻松,而不是这样做:

text1.setColor(sf::Color::Black);
text2.setColor(sf::Color::Black);
text3.setColor(sf::Color::Black);
...

我在C++ 98中使用SFML 2.1。

最佳答案

如果Text实例与此相似,则将它们保留在std::vector或某些其他容器类中可能是有意义的。如果可以将它们合理地放置在这样的容器中,则可以简单地遍历它们并更改所需的任何属性:

for (std::vector<sf::Text>::iterator it = myvector.begin() ; it != myvector.end(); ++it)
{
    it->setColor(sf::Color::Black);
    it->setFont(myfont);
}

编辑对C++ 11感兴趣的注释:

在C++ 11中,由于automatic type deductionrange-based for loops,这变得更加简单。上面的语法简化为:
for (auto& text : myvector)            //don't miss the & or 'text' will be read-only!
{
    text.setColor(sf::Color::Black);
    text.setFont(myfont);
}

关于c++ - SFML 2.1设置所有文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25904000/

10-17 00:45