画面にデバッグフォントを表示しよう

デバッグフォントを表示しよう

ゲーム開発をしていると画面に文字を出したい時がよくあります。

現在の状況やプレイヤーの位置、敵の数、時間等。
確認したい情報が沢山あります。

必要になる都度ブレイクポイントで止めて値を確認したり、
出力ウィンドウに出力して確認するのも手間です。

そういった時は画面に文字で表示して確認できると楽になります。

ID3DXFont

ID3DXFontはDIrectX9のD3DX(ヘルパー機能)に入っているフォント描画用のオブジェクトです。
今回はこのID3DXFontを使って文字を表示する実装の方法を記載していきます。

ちなみにID3DXFontは比較的に低速な機能なのでノベルゲーム程度であれば問題ありませんが、速度が求められる環境下では推薦できる機能ではありません。

なので今回はデバッグ機能として利用する前提で記述していきます。

 

ID3DXFontの初期化

ID3DXFontの初期化は簡単に出来るようになっています。

ID3DXFont* pFont;
D3DXFONT_DESC desc;
desc.Height		= 14;
desc.Width		= desc.Height / 2;
desc.Weight		= 400;
desc.MipLevels		= D3DX_DEFAULT;
desc.Italic		= FALSE;
desc.CharSet		= DEFAULT_CHARSET;
desc.OutputPrecision 	= OUT_DEFAULT_PRECIS;
desc.Quality		= DEFAULT_QUALITY;
desc.PitchAndFamily	= FIXED_PITCH | FF_MODERN;
ZeroMemory(desc.FaceName, sizeof(desc.FaceName));

D3DXCreateFontIndirect(
	GetDirect3DDevice(),
	&desc,
	&pFont
);

D3DXFONT_DESCにフォントの設定を指定してD3DXCreateFontIndirectに渡すだけです。

では重要な部分だけ説明していきます。

・Height, Width

そのまま縦と横の幅です。
横幅は半角の際は高さの半分なので2で割った値を入れています。

・Weight

フォントの太さを表します。

・Italic

フォントを斜体にするか?

・FaceName

使用するフォント名
特に指定が無ければNULLで問題ありません

 

解放は例にもれずにSAFE_RELEASEです。

SAFE_RELEASE(pFont);

これでフォントが初期化と解放ができます。

1 2

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です