SFML setFillColor 无法填充 sf::RectangleShape 二维数组的颜色

SFML setFillColor fails to fill color of sf::RectangleShape 2D array

为了学校,我接到了制作井字游戏的作业。我有一个网格布局,由 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,它仍然显示为白色。

我想出了解决方法。出于某种原因,颜色根据这两个函数的调用顺序重置为白色:

GridLayout::GridLayout(sf::RenderWindow& window, const sf::Color& fillColor, const int& spacing):
//init
{       
    setFillColor(fillColor);
    createGridLayout();
}

应该是:

{       
    createGridLayout();
    setFillColor(fillColor);

}