クラスまみれのゲームプログラミング入門

25:スプライトアニメーションの応用

 フレーム指定で対象の範囲を抜き取る前回の方法を応用すれば、簡単なオリジナルフォントの描画もできます。フレームの位置とANSI文字コードを一致するようにすれば、そのまま文字列を表示させることが可能となります。

 特定のフォントからテクスチャイメージを作成するツールはインターネット上で割合多く出回っていますので、「texture font」でgoogle検索してみるのもひとつの手です。

font.h
class CDrawTextTest : public CGameObject
{
private:
	CTexture tex;
	CSprite sprite;
	char message[128];
protected:
	void Init();
	void Exec();
};

font.cpp
#include "font.h"

void CDrawTextTest::Init()
{
	tex.Load(_T("font.png"));
	sprite.SetTexture(&tex);
	sprite.SetSpriteSize(32, 32);
	strcpy_s(message, 128, "It's a font test.");
}

void CDrawTextTest::Exec()
{
	int i = 0;
	while(message[i] != '\0'){
		sprite.SetFrame(message[i]);
		sprite.Draw(50.0f + (float)(i * 32), 100.0f);
		i++;
	}
}

font.png
 実行結果はこのようになります。