【问题标题】:SFML not drawing shape when I call the shape's constructor " shape() "当我调用形状的构造函数“ shape() ”时,SFML 不绘制形状
【发布时间】:2014-07-07 14:47:41
【问题描述】:

除非我在成员初始化中这样做,否则我的播放器“矩形”不会绘制:

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() 不起作用,所以矢量将不起作用“不会绘制”

【问题讨论】:

    标签: c++ sfml


    【解决方案1】:

    矩形的默认大小是 0 x 0。这就是它不会绘制的原因。

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

    【讨论】:

      猜你喜欢
      • 2020-11-23
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      • 2018-09-24
      • 2023-04-02
      • 2018-04-26
      • 1970-01-01
      相关资源
      最近更新 更多