除非我在成员初始化中执行此操作,否则我的玩家“矩形”将不会绘制:

mPLayer(sf::Vector2f(10,10))


即使我已经在构造函数定义中做到了这一点:

mPLayer.setPosition(50,50);
    mPLayer.setFillColor(sf::Color::Green);


问题是我想使用std :: vector来存储许多形状并控制它们,但是在执行此操作时“不画图”将不起作用:

在标题中:

std::vector<sf::RectangleShape>mPlayerScale;


在执行中:

mPlayerScale.resize(3);
    mPlayerScale[0].setPosition(0.f,0.f);
    mPlayerScale[1].setPosition(101,101);
    mPlayerScale[2].setPosition(101,101);
    mPlayerScale[0].setFillColor(sf::Color::Red);
    mPlayerScale[1].setFillColor(sf::Color::Green);
    mPlayerScale[2].setFillColor(sf::Color::Blue);


而且由于mPlayer()在我调用它时不起作用,因此矢量将不起作用“不会绘制”

最佳答案

矩形的默认大小为0 x0。这就是为什么它不会绘制的原因。

sf::Vector2f传递给构造函数以指定大小,或者使用setSize()方法。

关于c++ - 当我将形状的构造函数称为“shape()”时,SFML不会绘制形状,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24613432/

10-13 06:26