C ++ SFML时钟疯狂输出

时间:2018-07-09 01:15:59

标签: c++ sfml

我已经尝试过重新启动程序或创建新程序,但是我没有得到一个有效的时间,我总是得到像5e-06这样的输出,持续几秒钟...问题出在哪里? https://i.stack.imgur.com/a3sGy.png 感谢您的帮助

#include <SFML/Graphics.hpp>
#include <iostream>

int main() {
sf::Clock clock;

sf::Time time1 = clock.getElapsedTime();

sf::Time time2 = clock.restart();

sf::RenderWindow myWindow(sf::VideoMode(512, 512), "SFML Window", sf::Style::Default | sf::Style::Titlebar);
while (myWindow.isOpen()) {
    sf::Event openEvent;

    std::cout << time1.asSeconds() << std::endl;
    while (myWindow.pollEvent(openEvent))
    {
        switch (openEvent.type)
        {
        case sf::Event::Closed:
            myWindow.close();
            break;
            myWindow.clear();
            myWindow.display();
        }
    }
}

}

2 个答案:

答案 0 :(得分:2)

创建时钟,然后在下一条指令中获得经过的时间(纳秒?)。然后将其转换为秒(0.000005),其表示形式是(5e-06)

答案 1 :(得分:0)

您可以计算循环外的时间。输出之前,请尝试在循环内部移动clock.getElapsedTime()。