SFML不会画任何东西?

时间:2015-06-28 23:23:36

标签: c++ sfml

我习惯使用SDL for C ++,但我听说SFML更好,所以我尝试了。我试图渲染一个基本的精灵,但是没有用。然后我试图将窗口清除为不同的颜色,但是没有用。这是简单的代码,所以发生了什么? (由于某些原因,间距有点偏,对不起)

#include <iostream>
#include "SFML/Graphics.hpp"


int main(){

sf::RenderWindow window(sf::VideoMode(640, 480), "It worked");

sf::Texture boxTexture;
boxTexture.loadFromFile("box.png");



while (window.isOpen()){

    window.clear(sf::Color::Blue);

    sf::CircleShape circle;
    circle.setRadius(10);
    circle.setPosition(1, 1);
    circle.setFillColor(sf::Color::Blue);

    window.draw(circle);

    window.display();

}


return 0;
}

所有这一切都显示白屏......它不会将背景更改为蓝色。有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

即使你不需要它,你也必须把事件处理循环。从SFML教程页面:

  

人们经常犯的错误就是忘记事件循环,仅仅是因为他们还不关心处理事件(他们使用的是实时输入)。如果没有事件循环,窗口将无响应。重要的是要注意事件循环有两个角色:除了向用户提供事件之外,它还为窗口提供了处理其内部事件的机会,这是必需的,以便它可以对移动或调整用户操作做出反应。

您可以详细了解here

希望这有帮助