0
我正在嘗試計算我的遊戲的FPS,但值不穩定,所以我想實現線性插值以使顯示的文本平滑。問題是我獲得1.#INF值,我嘗試了谷歌搜索,但無法真正找到解釋。C++獲取1.#INF
這裏是插值功能:
float Lerp(float from, float to, float t)
{
return (from*(1 - t) + to*t);
}
我如何計算FPS:
void CalculateTime()
{
deltaTime = (float)(SDL_GetTicks() - lastFrameTime)/1000.0f; // this is around 0.02 each frame
fps = 1.0f/deltaTime; // this is 50-60 every frame
lastFps = Lerp(fps, lastFps, 0.5f); // lastFps is initialized at 60.0
printf("%2.4f\n", lastFps);
}
一切都顯得很好..的DeltaTime,FPS,lastFps都是浮動(我試過雙太但沒有區別),但是當printf執行時,我得到1.#INF
任何想法?
您的示例不是(非常)可編輯的複製品。如果你可以修復它成爲一個編譯和運行的獨立示例,那就太好了。然後也使用調試器。 – Puppy
deltaTime至少一次等於0,可能是第一次。哪些產生無限。你永遠不會再擺脫它。 –