我正在学习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。
答案 0 :(得分:1)
我真的不明白你的问题,但你是否试图清理窗户?
添加“window.clear();”就在“window.display();”
之前