當前位置:編程學習大全網 - 編程軟體 - (C++遊戲編程)如何精確限制幀頻?

(C++遊戲編程)如何精確限制幀頻?

嗯,雖然沒有編過遊戲的說,但是妳的問題就是循環結束時哪個環節吃掉了14ms吧

我把妳的程序抄下來看下確實只有21的fps

但是把

timeStart=getTickCount();//重設開始時間

改為

timeStart+=33;//33就是1000/fps

就是準確的fps=30了

總之改完之後

int Game_Main(){

static int timeStart=getTickCount();//在第壹次調用函數的時候賦值

while(getTickCount()-timeStart < 33)

timeStart+=33;

return 1;

}

說完實際的,那麽來談談那裏吃掉了10多ms吧

顯然是循環最後壹次的while(GetTickCount()-timeStart < 1000/fps);和之後的GetTickCount()嘛

顯然這之後再調用GetTickCount()得到的值比timeStart+33還大10多ms

還有不要用除法吧,沒必要,畢竟fps不是30就是60,用自己設定的常數當然更快

最後說下吧,支持之前某位仁兄提到的不要過多占用CPU,至於方法如果不想自己包裝Sleep的話多考慮下吧,老實說對33ms進行壹次的循環我也沒底...

  • 上一篇:printf這個怎麽讀,
  • 下一篇:微信微信官方賬號寫好文案需要註意什麽?
  • copyright 2024編程學習大全網