计时器原理:
在动画中,为了能够使动画播放的更加流畅,我们需要对时间进行精确的把握。特别的,我们需要权衡播放动画时,两帧之间的间隔。这个间隔呢,时间很是短暂,于是,我们需要更加精确的计时器。那么,我们经常通过两个静态变量来进行计时的方法就显得不可取了。下面,我们就来设计一个计时器。
这个计时器用到了Windows中的高精度计时喊数:QueryPerformanceCounter和QueryPerformanceFrequency。
原型如下:
BOOL QueryPerformanceCounter( LARGE_INTEGER* lpPerformanceCount );
BOOL QueryPerformanceFrequency( LARGE_INTEGER* lpFrequency );
QueryPerformanceCounter()这个函数返回高精确度性能计数器的值,它可以以微妙为单位计时.但是QueryPerformanceCounter()确切的精确计时的最小单位是与系统有关的,所以,必须要查询系统以得到QueryPerformanceCounter()返回的计数的频率.
QueryPerformanceFrequency()提供了这个频率值,返回每秒计数的个数.
计算确切的时间是从第一次调用QueryPerformanceCounter()开始的,然后过段时间再调用此函数,让第二次调用得到的值减去第一次得到的值,就可以得到这两个时间点间隔内的总共计数了多