除非我在成员初始化中执行此操作,否则我的玩家“矩形”将不会绘制:
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/