c++结构:以一定的时间速率重复一组函数



所以我只能用一个小小的c++程序。我在w7环境中使用"代码块"。

我做了一个函数,显示一个ASCII地图和一个标记。第二个函数更新地图上标记的位置。

我想知道我如何使我的主要结构,使标记得到更新和地图显示,这在一定的时间率重复。我可以用哪些函数来实现这个。我应该遵循什么策略?

every x times/second DO { showmap(); updatePosition();}

我是一个c++初学者,我希望你能帮助!

使用ussleep的循环

unsigned XtimesPerSecond = 5;    // for example
unsigned long long microseconds = 1000000 / XtimesPerSecond;
do
{
    showmap();
    updatePosition();
    usleep(microseconds);
} while(true);

根据您的程序还需要做什么,您可能需要使用事件驱动编程。如果更新标记是它唯一要做的事情,一个简单的while循环和一个sleep就足够了,如其他答案所示。

为了进行事件驱动编程,您通常需要一个事件循环—这是一个在main中调用的函数,它等待事件并调度它们。大多数事件循环将提供定时器事件 -基本上,您要求事件循环在给定的时间间隔过后调用函数X。

你很可能不想编写自己的事件循环。事件循环有很多选择,这取决于很多东西,比如编程语言和所需的可移植性。

事件循环的一些例子:

  • Qt事件循环
  • GLib事件循环,
  • Windows事件循环,以及更多…

看来你想实现一个无限循环像游戏引擎。

试着这样做:

while (true)
{
    showmap();
    updatePosition();
    sleep(1);
}

相关内容