|
|
发表于 2006-2-10 21:19:00
|
显示全部楼层
Re:CS反恐精英,为什么在每一台机器里的速度都一样快?
QueryPerformanceCounter() 配合 QueryPerformanceFrequency() 。。。。
刷新率限制。。。记得以前学过,不过当时不明白,现在有点开窍了
择出来以下代码,大概就是这么用
void CGame::Refresh()
{
//得到当前时间
static double dFPSCount = 0;
static double dTimeE = 0, dTimeB = 0;
static double dTimeRefresh = 0;
dFPSCount += dTimeE - dTimeB;
//防止FPS变动过快,0.5秒才变一次
if(dFPSCount > 0.5)
{
dTimeRefresh = dTimeE - dTimeB;
dFPSCount = 0;
}
//PrintLog(0, "Game refresh()\n");
//得到当前时间
QueryPerformanceCounter((LARGE_INTEGER*)&g_nStart);
//将时间转为以秒为单位
dTimeB = (double)(g_nStart) / (double)g_nFreq;
//。。。。。。运行OOXX
//得到当前时间
QueryPerformanceCounter((LARGE_INTEGER*)&g_nEnd);
//将时间转为以秒为单位
dTimeE = (double)(g_nEnd) / (double)g_nFreq;
|
|