由于某些奇怪的原因或其他原因,屏幕无法清除。我已将其设置为在绘制 levelMainDraw 4 秒后清除屏幕。出于某种原因,它不是。默认情况下,我已将 DrawMainMenu 设置为 true,将 levelMainDraw 设置为 false。
//Checks if DrawMainMenu is true or false
if (DrawMainMenu == true) {
window.draw(mainMenuSprite);
window.draw(rect);
window.draw(buttonText);
}
else if (DrawMainMenu == false){
window.clear();
levelMainDraw = true;
}
//checks if levelMainDraw is true or false
if (levelMainDraw == true)
{
window.draw(levelSelectSprite);
sf::Clock clock;
sf::Time time = clock.getElapsedTime();
if (time.asSeconds() >= 4)
{
window.clear();
}
最佳答案
每次检查耗时时,您都在创建一个新时钟。
这意味着您永远不会清除屏幕,因为时钟会在您每次创建时“重置”。
实际上,上一个周期的时钟已不存在,将创建一个新的,timer=0。
如果您想测量流逝的时间,您需要将时钟创建为游戏中的持久实体。
关于c++ - SFML window.clear() 不清除屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28746801/