FPS表示方法

概要

FPSはFramesPerSecondの略でゲームなどで1秒間に画面を更新する回数のことです。
例えば60FPSの場合は1秒間で60回画面を切り替えます。

デバッグ

FPSをデバッグで利用する場合は、毎秒設定したFPSの値で更新されているかを確認し、 「常に設定値に達している」「時折達していない」「常に達していない」などを調べます。 その後、時折達していない、常に達していない場合は原因となる部分をコードから 探し出し、修正を行います。 ※「時折達していない」はゲームのロード中等、FPSが極端に低下する箇所があるので、  アプリ上で支障があるかないかを判断し、修正を行います。

サンプル

以下は「■実装方法」「■表示方法」を実装したサンプルです。 サンプル

■実装方法

実装方法はFPS処理を行っているループ処理の中にフレームカウント処理を追加します。
そして、ループごとの時間を計測して時間が1秒を超えた際に
カウントしたカウントを0に戻します。
この時にカウントした値を表示するようにすると毎秒のFPS数がわかります。

コード例

static DWORD prev_time = timeGetTime(); // 前回の時間 static int frame_count = 0; // フレームカウント DWORD now_time = timeGetTime(); // 今回のフレームの時間 frame_count++; // フレーム数をカウントする // 経過時間が1秒を超えたらカウントと時間をリセット if (now_time - prev_time >= 1000) { char str[128]; prev_time = now_time; frame_count = 0; }

■表示方法

表示方法はVisualStudioなどの開発環境のコンソール部分に表示する方法や
画面に表示する方法、PCアプリではタイトルバーに表示する方法等があります。

コンソール表示

VisualStudioのコンソールへの表示は「OutputDebugString」関数を使用します。 引数は文字列を指定するだけで使用可能です。 例: OutputDebugString("コンソールで表示\n"); debug_0001 debug_0001

タイトルバー表示

タイトルバーで表示するには「SetWindowText」関数を使用します。 第一に引数にウィンドウハンドル、第二引数に文字列を指定することで使用可能です。 例: SetWindowText(hWnd, "タイトル変更"); debug_0002 debug_0002