SFML window.clear()没有清除屏幕?

时间:2015-02-26 15:48:09

标签: 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();
        }

1 个答案:

答案 0 :(得分:1)

每次检查经过的时间时,您都在创建一个新时钟。

这意味着您永远不会清除屏幕,因为每次创建时钟都会“重置”。

实际上,上一个周期的时钟不再存在,并且将创建一个新的,其中timer = 0。

如果你想测量经过的时间,你需要在游戏中创建一个持久的实体。