数字画像を転送する。
フォントは環境によって変化するため、フォントに頼らず数値を描画するための機能。
void DrawNumber( const int destX, const int destY, const DWORD number, const int numOfDigits, const bool bUseLeadingZero, const int sourX, const int sourY, const int width, const int height, std::string strFileName ); |
destX 転送を開始するX座標。
destY 転送を開始するY座標。
number 描画したい数値(正数)。
numOfDigits 描画したい桁数。
bUseLeadingZero 前ゼロ制御(true 前ゼロあり、false なし)。
sourX 転送元のX座標(画像の'0'の左上座標)
sourY 転送元のY座標(画像の'0'の左上座標)
width 数字画像1つ分の幅
height 数字画像1つ分の高さ
strFileName 転送元となる画像ファイルのパス付ファイル名。 GameBase.hにて定数として宣言する。
なし
シーンのDraw関数内で実行する事。
転送する画像は2のn乗×2のn乗の正方形でなければならない。
"0123456789 "という並びの画像が必要であり、すべての数字画像の幅および高さは同じでなければならない。
数字画像の右端の空欄は前ゼロなしの際の空白として使う。
負の数値は扱えない。
指定した桁数を超える数値を渡した場合、例外が発生する。
描画までの手順を紹介する。
元画像 Resource\\Texture\\Number.png
元の画像サイズは(256×256ピクセル)
各数字の、幅は20ピクセル、高さは30ピクセルで作成してある。
分かりやすくするため、数字に枠を付け背景を白にしている。
GameBase.hでパス付ファイル名を定数として宣言しておく。
namespace KeyString { const std::string TEXTURE_NUMBER = "Resource\\Texture\\Number.png"; } |
テクスチャの追加
m_pEngine->AddTexture(TEXTURE_NUMBER); |
前ゼロなし5桁で「123」を転送
m_pEngine->DrawNumber(0, 0, 123, 5, false, 0, 0, 20, 30, TEXTURE_NUMBER); |
前ゼロあり5桁で「123」を転送
m_pEngine->DrawNumber(0, 0, 123, 5, true, 0, 0, 20, 30, TEXTURE_NUMBER); |