SFML窗口不渲染形状

时间:2015-07-09 18:58:22

标签: c++ graphics sfml

#include <SFML/Graphics.hpp>
int main()
{
    sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
    sf::CircleShape shape(100.f);
    shape.setFillColor(sf::Color::Green);

    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed) {
                window.close();
            }
        }

        window.clear();
        window.draw(shape);
        window.display();
    }

    return 0;
}

这是直接来自教程的页面,我已经检查并重新检查,所以我知道这不是语法或链接器错误。

当我运行这个程序时,我得到一个窗口,其内容与它所在的位置相同。但是,如果我删除window.draw(shape)命令,我会看到一个黑色的窗口,就像我应该的那样。

我使用mingw32-g ++。exe(4.7.1)在Windows 7(32位)上进行编译。哦,如果我编译调试或发布以及静态或动态,它也是一样的,所以这也不是问题。

1 个答案:

答案 0 :(得分:0)

您的代码是正确的,但对我来说,您似乎需要设置圆圈的位置。我可能在这里错了,但这个位置可能是任何价值,这就是为什么它没有显示。

您可以尝试更新您的代码吗。

sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);
shape.setPosition(50f, 50f);
shape.setScale(2,2); // You can remove this line if you want to, I just put it there for debugging

while (window.isOpen())
{
    ...

以下是setPosition(DBMS_XMLGEN.GETXML

的SFML文档

以下是setScale(http://www.sfml-dev.org/documentation/2.0/classsf_1_1Transformable.php#a4dbfb1a7c80688b0b4c477d706550208

的SFML文档

如果这样可以解决您的问题,请告诉我。