2009-09-02 25 views

回答

3

测量经过的时间并计算帧数。 一个另一个给帧速率。

当经过时间达到一秒钟或更长时间,如果您想在较长的时间周期内对其进行平均,则重置两次计数并重新开始。

+0

如果我使用过剩和我做这样的判断glutIdleFunc(oneFrame);我假设oneFrame将被称为每帧是正确的? – Mike2012 2009-09-02 22:30:26

+0

我相信,但我不熟悉过剩 – jcoder 2009-09-03 07:25:24

5

在主循环开始处粘贴一个计时器,并测试返回到那里需要多长时间。

在windows下你会做这样的事情:

double oldTime = 0.0. 
while(!exit) 
{ 
    __int64 counter; 
    QueryPerformanceCounter((LARGE_INTEGER*)&counter); 

    __int64 frequency; 
    QueryPerformanceFrequency((LARGE_INTEGER*)&frequency); 

    double newTime  = (double)counter/(double)frequency; 
    double frameRate = 1.0/(newTime - oldTime); 
    oldTime   = newTime; 

    // Rest of your game loop goes here.  
} 
+1

我只说与实际代码,所以+1 (虽然它确实承担窗户...) – jcoder 2009-09-03 07:26:10

+0

不是他提到的平台或语言...所以它的猜测时间;) – Goz 2009-09-03 08:54:58