在学校,我得到了做井字游戏的任务。我有一个由9个正方形(顶部为3,顶部为3,底部为3)组成的网格布局。通过这种方式获得网格。但是设置颜色无效。在我的构造函数GridLayout
中,我要求一个sf::Color
,如下所示:
GridLayout(sf::RenderWindow& window, const sf::Color& fillColor, const int& spacing):
// some init
{
setFillColor(fillColor);
}
此外,在我的私有属性中,我有一个网格,如下所示:
sf::RectangleShape[3][3] rectangleShapes;
要设置所有9种形状的填充颜色,我创建了以下功能:
void GridLayout::setFillColor(const sf::Color& fillColor) {
for (auto& row : rectangleShapes)
for (auto& rect : row)
rect.setFillColor(fillColor);
}
但是,如下图所示,即使通过了sf::Color::Black
,它仍然显示为白色。
答案 0 :(得分:0)
我想出了解决方法。由于某些原因,颜色会根据这两个函数的调用顺序重置为白色:
GridLayout::GridLayout(sf::RenderWindow& window, const sf::Color& fillColor, const int& spacing):
//init
{
setFillColor(fillColor);
createGridLayout();
}
应该是:
{
createGridLayout();
setFillColor(fillColor);
}