我正在尝试使用C ++和OpenGL制作一个简单的游戏,但我还没有找到任何有关为游戏创建简单刻度或计时器系统的好教程我也想使用一些小外部库可能。 任何帮助表示赞赏。我正在使用Win32和C :: B IDE ... MingW编译器。
答案 0 :(得分:2)
你试过了吗?
void glutTimerFunc( unsigned int msecs, void (*func)(int value), value);
答案 1 :(得分:1)
查看此页面:
http://wiki.allegro.cc/index.php?title=Timers#How_to_use_them.3F
http://www.koonsolo.com/news/dewitters-gameloop/
也许你可以在Gamedev Stackexchange上获得更多答案。
答案 2 :(得分:0)
答案 3 :(得分:0)
如果您想要超精确,可以尝试QueryPerformanceCounter和QueryPerformanceFrequency。
编辑:我认为文档非常充足,您可以获得计时器滴答数和计时器频率。但无论如何,这是一个例子:
没有经过测试,但应该给你一个想法。
int main(int argc, char *argv[])
{
LARGE_INTEGER freq;
LARGE_INTEGER start;
LARGE_INTEGER current;
double t;
QueryPerformanceFrequency(&freq); // initialize frequency
QueryPerformanceCounter(&start); // initialize start time
while (!terminated) // game main loop
{
QueryPerformanceCounter(¤t); // get current time
t = (end.QuadPart - start.QuadPart) / (double)freq.QuadPart; // transform to seconds
/* do stuff here with t */
}
return 0;
}
您也可以使用任何64位整数类型而不是LARGE_INTEGER
,但这就是他们的意图。