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