-1

我一直在尝试为我的游戏创建一个计时器,我听说了 QueryPerformanceCounter 和 QueryPerformanceFrequency。有人可以解释一下如何使用这些来计算游戏循环中的时间/fps/ticks吗?

4

2 回答 2

11

Microsoft 支持有专门关于此的知识库文章:

如何使用 QueryPerformanceCounter 计时码

基本上,您可以QueryPerformanceCounter在要计时的事件之前和之后获取高分辨率计时器值。

然后用于QueryPerformanceFrequency获取每秒的滴答数。将时间差除以该值可将该值转换为秒。

于 2011-05-17T06:24:53.017 回答
5
LARGE_INTEGER m_liPerformanceFrequency;
QueryPerformanceFrequency( &m_liPerformanceFrequency);

//...

LARGE_INTEGER liPerformanceCount;
QueryPerformanceCounter( &liPerformanceCount);
double dTime = double(liPerformanceCount.QuadPart)/double(m_liPerformanceFrequency.QuadPart);
于 2011-05-17T06:27:47.757 回答