我正在学习 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);
我是否遗漏了一些非常明显的东西?
如果这有什么不同的话,我也将 Linux 与 xfce4 一起使用。
最佳答案
我不太明白你的问题,但你有没有尝试清除窗口?
添加“window.clear();”就在“window.display();”之前
关于c++ - 窗口出现奇怪的 SFML 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21946401/