c++ - SFML window.clear() 不清除屏幕?

标签 c++ sfml

由于某些奇怪的原因或其他原因,屏幕无法清除。我已将其设置为在绘制 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/

相关文章:

c++ - 如何初始化可变长度的无符号字符数组?

c# - SFML.net 中的 SFML C++ getSize() 和 sprite.move()

c++ SFML按键字符错误

c++ - SFML 即使在覆盖虚拟绘图功能后也无法绘制对象

c++ - 如何将 UTF-8 文本转换为用于 SFML 的 wstring?

c++ - 如何将类中的成员绘制到窗口 C++

c++ - 来自同一个 enable_shared_from_this 实例的两个 shared_ptr

c++ - 您应该在头文件中包含源代码吗?

c++ - 在 C++ 中什么时候使用 WCHAR 什么时候使用 CHAR

c++ - 在 C++20 中,如果宏是 #undef'd,然后又是 #define'd,那么它是否被认为是 "active"?