关于对游戏帧率的学习

    先看传统的游戏消息主循环:

while(1)
 {
  if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
  {
   if(msg.message==WM_QUIT)
    break;
   TranslateMessage(&msg);
   DispatchMessage(&msg);
  }
  else
  {
   //there is no message and now to due the game logic
   if(bActive)
   { 
    thisTick=GetTickCount();
    if(thisTick-lastTick>1000)
    {
     lastTick=thisTick;
     FPS=count;
     count=0;
    }
    else
     count++;

    MakeScene();
    Flip(lpDDSPrimary,lpDDSBack);
   }
  }

  
 }
  如果我们要把游戏限制在一定的帧数怎么做呢?很简单,假如我们要把帧数限制在30,那么每帧就需要----

1/30秒~~即为1000/30毫秒~~这样的话就可以这样做

    if(thisTick-lastTick>1000/30)

{

    lastTick=thisTick;

    MakeScene();

   Flip(lpDDSPrimary,lpDDSBack);

 }

把更新游戏画面和逻辑都放进那里面,就可以到达目的了~~ 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值