博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

游戏中限制帧数

Posted on 2010-05-18 16:01  Zhiyett  阅读(581)  评论(0编辑  收藏  举报
GameLoop()中

static uint32 s_dwPreTime = 0;
uint32 dwCurrentTime = CStaticFunc::GetTime();
uint32 dwElapsed = dwCurrentTime - s_dwPreTime;
if (m_bLimitFPS && dwElapsed < 16)//限帧到60FPS,1000/60=16
{
  Thread::sleep(16 - dwElapsed);
  return;
}
if (s_dwPreTime == 0)
{
  dwElapsed = 0;
}
s_dwPreTime = dwCurrentTime;