我一直在尝试为我的游戏创建一个计时器,我听说过QueryPerformanceCounter和QueryPerformanceFrequency。有人可以解释一下这些如何用于计算游戏循环中的时间/ fps /滴答?
答案 0 :(得分:11)
Microsoft支持有一篇专门针对此的知识库文章:
How To Use QueryPerformanceCounter to Time Code
基本上,您使用QueryPerformanceCounter
在想要计时的事件之前和之后获取高分辨率计时器值。
然后使用QueryPerformanceFrequency
获取每秒的滴答数。将时差除以此值,将值转换为秒。
答案 1 :(得分:5)
LARGE_INTEGER m_liPerformanceFrequency;
QueryPerformanceFrequency( &m_liPerformanceFrequency);
//...
LARGE_INTEGER liPerformanceCount;
QueryPerformanceCounter( &liPerformanceCount);
double dTime = double(liPerformanceCount.QuadPart)/double(m_liPerformanceFrequency.QuadPart);