オブジェクト2Dクラスを拡張し、文字列を描画することが可能な2D描画オブジェクトです。
最低限、描画に使用するフォントと描画する文字列を設定すると図に示すように文字列の左上を基準に文字列を描画することが出来ます。フォントの設定によって図に示すように文字サイズが設定でき、枠線付き文字の描画や文字列の回転も可能です。
他にも文字列の描画方向、描画色、アルファブレンドの種類、反転フラグなどが指定可能です。
ゲームのスコアやステータスなど文字を扱う描画オブジェクト全般に使用可能です。
フォントについてはフォントの項を御覧ください。
なし
名称 | 説明 |
---|---|
Font | 描画文字列に使用するフォント |
Text | 描画する文字列。(\nで描画文字列を改行可能) |
AlphaBlendMode | テクスチャ描画の際に適用されるアルファブレンドの種類 |
CenterPosition | 文字列描画の際に適用する変換(拡大、回転、移動)の基準位置(親から見た相対座標にて設定) |
Color | 文字列に合成する色のRGBA値を0~255の間で指定(Aの値を255未満にすると透明になる) |
DrawingPriority | 描画の優先順位 |
TurnLR | 個々の文字の描画左右反転フラグ |
TurnUL | 個々の文字の描画上下反転フラグ |
WritingDirection | 文字列の描画する方向(左から右:Horizontalもしくは上から下:Vertical) |
TextureFilterType | 描画時のテクスチャフィルタ(近傍補間:Nearestもしくは線形補間:Linear) |
なし
TextObject2Dクラスのサンプルです。
#include <ace.h>
// TextObject2Dのサンプル。TextObject2Dを用いて文字を表示しています。
int main()
{
// AC-Engineを初期化する。
ace::Engine::Initialize(ace::ToAString("TextObject2D").c_str(), 640, 480, ace::EngineOption());
// シーンを生成する
auto scene = std::make_shared<ace::Scene>();
// レイヤーを生成する
auto layer = std::make_shared<ace::Layer2D>();
// シーンにレイヤーを追加する
scene->AddLayer(layer);
// シーンを切り替える
ace::Engine::ChangeScene(scene);
// フォントを生成する
auto smallFont = ace::Engine::GetGraphics()->CreateFont(ace::ToAString("Data/Font/small.aff").c_str());
// TextObject2Dのインスタンスを生成する
auto smallObj = std::make_shared<ace::TextObject2D>();
// 描画に使うフォントを設定する
smallObj->SetFont(smallFont);
// 描画位置を指定する
smallObj->SetPosition(ace::Vector2DF(100, 100));
// 描画する文字列を指定する
smallObj->SetText(ace::ToAString("文字列サンプル1").c_str());
//レイヤーへ追加する
layer->AddObject(smallObj);
// AC-Engineのウインドウが閉じられていないか確認する。
while (ace::Engine::DoEvents())
{
// AC-Engineを更新する。
ace::Engine::Update();
}
// AC-Engineの終了処理をする。
ace::Engine::Terminate();
return 0;
}