本章,使用三个函数方法来学习如何制作一个高分辨率的定时器,用于确保场景中的每个运动物体的速度值基于时间进行更新。这意味着无论我们的帧率是多少,一个物体在场景中移动每秒会走过同样的距离,物体所移动的距离或者它所旋转的多少都是基于时间的,而不是fps。
这儿会学会如何使用方法QueryPerformanceCounter()和QueryPerformanceTimer()来实现高分辨率的游戏定时器,用于发现帧率,并使用上一章节的函数来讲它们显示在屏幕上。我们还会使用该定时器来找到它每帧花费的时间,并基于花费的每帧时间来更新立方体的旋转。这将会让立方体以同一个速度流畅地保持旋转,无论帧率是多少都是如此。
全局声明:
以下是用于保持一些全局信息的变量,比如帧率fps以及计数器起点。
double countsPerSecond = 0.0;
__int64 CounterStart = 0;
int frameCount = 0;
int fps = 0;
__int64 frameTimeOld = 0;
double frameTime;
新添加的函数
四个函数原型。第一个是UpdateScene()函数的更新版本。会传入渲染帧所花费的时间(秒),所以我们能够基于时间而不仅仅是fps来更新场景了。下一