開発ガイドの目次に戻る

デバッグについて

はじめに

Karakuri Framework では、以下のようなデバッグのための手法を提供しています。

デバッグ文字列の出力

デバッグ文字列の取得

Karakuri Framework に用意されているすべてのクラスは、KRObject クラスから継承しており、現在の状態を文字列として表すための const char *c_str() 関数をもっています。

KRDebug(): 標準出力へのデバッグ文字列の出力

KRDebug() 関数を使うことで、標準出力にデバッグ文字列を出力できます。

KRDebug() 関数は、printf() 関数と同じ書式を使い、複数の引数を伴って呼び出すことができます。

KRDebug() 関数は、Debug ビルドでのみ標準出力に文字列を出力します。Release ビルドでは何も行いません。

KRDebugScreen(): ゲーム画面へのデバッグ文字列の出力

KRDebug() 関数と同様に使えるのが、KRDebugScreen() 関数です。KRDebugScreen() 関数は、直接ゲーム画面の上に、影付きの白文字でデバッグ文字列を表示します。とくに iPhone 実機でのデバッグに有効な手段となります。

デバッグ文字列が不要となった場合には、KRClearDebugScreen() 関数を使うことで、ゲーム画面上に表示されたデバッグ文字列を削除できます。iPhone 実機での開発時には、Debug ビルドの際に、指5本タッチで KRClearDebugScreen() 関数を呼び出すようにしておくと、デバッグ作業が行いやすくなります。

KRDebugScreen() 関数は、printf() 関数と同じ書式を使い、複数の引数を伴って呼び出すことができます。

KRDebugScreen() 関数は、Debug ビルドでのみ標準出力に文字列を出力します。Release ビルドでは何も行いません。

ゲーム実行時の例外処理

ゲーム実行時に何らかのエラーが起きた場合には、KRGameError 例外をスローしてください。この例外はフレームワークによってキャッチされ、メッセージボックスやメッセージシートに適切に表示されます。

if (error) {
    throw KRGameError("エラーの内容を示す文字列");
}

FPS 情報の表示

GameMain クラスのコンストラクタで setShowsFPS() 関数を true を引数にして呼び出すことで、ゲームの実行中に、現在のフレームレートなどの情報を表示することができます。

FPS
平均フレームレートです。1秒間に何フレーム描画できているかを表示します。
TPF
1フレーム当たりの平均のテクスチャ切り替え回数です。
BPF
1フレーム当たりの平均のテクスチャのバッチ処理回数です。