★フォントの扱いと文字描画★


前回のプログラムは使いませんので、プロジェクトフォルダをコピーして名前を変えて使ってください。

前回「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);
}


次へ

戻る

目次へ