所以我坚持使用一个小小的c ++程序。我在w7环境中使用“codeblocks”。
我做了一个显示ASCII地图和标记的功能。第二个函数更新该地图上的标记位置。
我想知道如何制作我的主要结构,以便标记得到更新并显示地图,并以一定的时间速率重复。我可以使用哪些功能来实现这一目标。我应该采取什么策略?
every x times/second DO { showmap(); updatePosition();}
我是c ++初学者,希望你能帮忙!
答案 0 :(得分:2)
带有usleep的循环
unsigned XtimesPerSecond = 5; // for example
unsigned long long microseconds = 1000000 / XtimesPerSecond;
do
{
showmap();
updatePosition();
usleep(microseconds);
} while(true);
答案 1 :(得分:1)
根据您的计划需要执行的其他操作,您可能需要使用 event driven programming 。如果更新该标记是它唯一要做的事情,那么带有睡眠的简单while循环就足够了,如其他答案所示。
为了进行事件驱动编程,你通常需要一个事件循环 - 这是你在main中调用的函数,它等待事件并调度它们。大多数事件循环将提供计时器事件 - 其中,基本上,您要求事件循环在给定的时间间隔过去后调用函数X.
您很可能不想编写自己的事件循环。事件循环有很多选择,具体取决于编程语言和所需的可移植性等许多内容。
事件循环的一些示例:
答案 2 :(得分:0)
似乎你想要像游戏引擎一样实现无限循环。
尝试这样做:
while (true)
{
showmap();
updatePosition();
sleep(1);
}