当前我的程序由一个主循环组成,该循环在窗口打开时执行。在循环中,有一个函数必须定期执行(比如每隔一秒左右),但主循环的其余部分必须继续执行,循环必须重复,而不执行周期性函数,直到时间结束。我的问题是,如何在主循环中周期性地执行函数而不完全停止程序执行?这是代码:
//Prototypes
void functionToBeExecutedPeriodically();
void someFunc1();
void someFunc2();
int main()
{
while (window.isOpen())
{
functionToBeExecutedPeriodically();
//This part of the loop must continue executing whilst the above
//idles for a limited period of time
someFunc1();
someFunc2();
window.display();
}
}
使用计时器,例如:
int main() {
sf::Clock timer;
while (window.isOpen()) {
if (timer.getElapsedTime() >= sf::seconds(1.0f)) {
functionToBeExecutedPeriodically();
timer.restart();
}
someFunc1();
someFunc2();
window.display();
}
}
这将每秒执行一次函数。