#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位)上进行编译。哦,如果我编译调试或发布以及静态或动态,它也是一样的,所以这也不是问题。
答案 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文档如果这样可以解决您的问题,请告诉我。