総合発表&雑談スレッドat GAMEDEV
総合発表&雑談スレッド - 暇つぶし2ch726:名前は開発中のものです。
04/10/21 23:14:53 26jBIHbd
>>723
楽な方法はゲーム処理ルーチンと描画ルーチンを分ける。
重いのは描画処理でそ。
↑のヤツだと、オイラはだいたい以下みたいな処理。

bool bDraw=false;
DWORD nextTime=timeGetTime();

while (!end) {
 if (PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 } else if(nextTime <= timeGetTime()){
  nextTime += 16;
  if (nextTime > TimeGetTime()+500) nextTime = TimeGetTime()+500;
  GameProc();
  bDraw=true;
 } else if (bDraw) {
  DrawProc();
  bDraw=false;
 } else {
  int sleeptime=nextTime-timeGetTime()-5;
  if (sleeptime > 0) Sleep(sleeptime);
 }
}
コレはわかりやすく書いたので、GameProc()が重い状態が続くと
一切描画の更新がされなくなる。そこらへんはゲーム処理のfpsと描画のfpsの
バランスをどう取るかを考えて、例えば200msたったら強制描画するとかイロイロ処理いれる。

他にもゲーム処理は固定fpsにしないで、前フレームからの時間に応じた処理をさせる、とか
イロイロ方法があって、その人なりの主義主張があって、2chでは荒れる原因になりがち。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch