void CalculateFrameRate()
{
static float framesPerSecond = 0.0f; // This will store our fps
static float lastTime = 0.0f; // This will hold the time from the last frame
float currentTime = GetTickCount() * 0.001f;
++framesPerSecond;
if( currentTime - lastTime > 1.0f )
{
lastTime = currentTime;
if(SHOW_FPS == 1) fprintf(stderr, "\nCurrent Frames Per Second: %d\n\n", (int)framesPerSecond);
framesPerSecond = 0;
}
}
我应该在void play(void)
还是void display(void)
中调用此函数?
还是没有任何区别?
4条答案
按热度按时间64jmpszr1#
你应该把它放在显示循环中。Here's这篇文章解释了一些你应该阅读的游戏循环的错综复杂之处。
r3i60tvu2#
如果你有任何类型的同步例程,我建议你在那之后调用,即在大的计算之前。否则计时计算可能是 * 不稳定的 *,并给予每个循环不同的值...注意,有一个稳定的FPS比波动的FPS更好,只是为了最大化它。波动即使是如此微妙,使观众/玩家意识到这是一个游戏,沉浸感失去了。
pbwdgjma3#
bmp9r5qi4#
在每一帧中调用此函数:
您可以从
fps
变量中访问fps值,也可以像当前在代码中一样,每秒只打印一次。