奇怪的SFML错误与窗口

Weird SFML error with window

本文关键字:窗口 错误 SFML      更新时间:2023-10-16

我正在学习SFML的基础知识(足以制作基本的乒乓球游戏),但是我不断收到这个奇怪的窗口错误。当窗口启动时,有时它有一个黑色的背景(如预期的那样),但大约 50% 的时间它看起来就像它启动时窗口后面的东西。我在编译时没有收到任何错误。

这是我认为导致问题的代码:

//Game loop
while(window.isOpen()){
    sf::Event Event;

    while(window.pollEvent(Event)){
        //Getting input
        switch(Event.type){
        case sf::Event::Closed:
            window.close();
        break;
        case sf::Event::KeyPressed:
            switch(Event.key.code){
            case sf::Keyboard::Right:
                std::cout << "Right Key Pressed" << std::endl;
            break;
            case sf::Keyboard::Left:
                std::cout << "Left Key Pressed" << std::endl;
            break;
            case sf::Keyboard::Up:
                std::cout << "Up key pressed" << std::endl;
            break;
            }
        break;
        }
    }
   window.display();
}
return 0;
}

这就是我制作窗口的方式:

sf::RenderWindow window(sf::VideoMode(screenWidth, screenHeight), "Pong!", sf::Style::Titlebar | sf::Style::Close);

我错过了什么非常明显的东西吗?

我也在xfce4中使用Linux,如果这有什么不同的话。

我真的不明白你的问题,但你有没有尝试过清除窗口?

在"window.display();"之前添加"window.clear();"