前回のプログラムは使いませんので、プロジェクトフォルダをコピーして名前を変えて使ってください。
前回「SceneGame.cpp」に追加したプログラムは消しておきましょう。
今回は画面に文字を表示するため、フォントの追加、解放、文字描画について説明します。
まずはフォント名を定数化しなければなりません。
「GameBase.h」を開いてください。
KeyString名前空間でフォント名を定数化します。
//-----------------------------------------------------------------------------
//ゲーム中で使用するテクスチャ、BGM、SE、フォントのパス付ファイル名を書きます。
//-----------------------------------------------------------------------------
namespace KeyString
{
const std::string FONT_GOTHIC = "MS ゴシック";
}
|
このフォント名はWindowsに登録されているフォント名を正確に書かなければなりません。
例えば上の例では、MSとゴシックの間の空白は「半角空白」でなければいけません。
フォント名の確認は「メモ帳」を開いて「書式メニュー」の「フォント」を選択すると楽です。
この「フォント名」をコピーして使うと間違いが無くなります。
次にフォントをシステムに追加します。
「SceneGame.cpp」を開いてください。
「Start関数」でエンジンクラスのAddFont関数を使ってフォントを追加します。
フォントの追加にはポイント数(文字の大きさ)も指定する必要があります。
//=============================================================================
// シーンの実行時に1度だけ呼び出される開始処理関数
//=============================================================================
void SceneGame::Start()
{
m_pEngine->AddFont(FONT_GOTHIC, 20);
}
|
ポイント数は20にしました。
これで文字の描画の準備は出来ました。
システムで用意されている文字描画用関数は以下の通りです。
DrawString関数 オーバーロード1 DrawString関数 オーバーロード2 DrawPrintf関数
一番使い勝手の良い関数は、DrawPrintf関数ですので今回はこれを使います。
文字の描画は「Draw関数」に書きます。
//============================================================================= // シーンの実行時に繰り返し呼び出される描画処理関数 //============================================================================= void SceneGame::Draw() { m_pEngine->DrawPrintf(0, 0, FONT_GOTHIC, D3DCOLOR_XRGB(255, 255, 255), "HELLO"); } |
実行して結果を見てみましょう。
<実行結果 クライアント領域のみ>
指定した座標に文字が表示されました。
DrawPrintf関数は書式指定が出来ますので、C言語のprintf関数と同じように使えます。
例えば、
//============================================================================= // シーンの実行時に繰り返し呼び出される描画処理関数 //============================================================================= void SceneGame::Draw() { m_pEngine->DrawPrintf(0, 0, FONT_GOTHIC, D3DCOLOR_XRGB(255, 255, 255), "X = %d", 15); } |
と書式を付けると、
のように表示されます。
画像と同じく、不要となったフォントは解放出来ます。
「Exit関数」でReleaseFont関数を呼び出します。
//=============================================================================
// シーンの終了時に呼び出される終了処理関数
//=============================================================================
void SceneGame::Exit()
{
m_pEngine->ReleaseFont(FONT_GOTHIC);
}
|