オブジェクト2Dクラスを拡張し、描画するテクスチャやそれに適用するオプションを設定可能にした2D描画オブジェクトです。描画するテクスチャ、そのテクスチャの切り出し範囲、反転描画のフラグなどを設定することができます。
プレイヤー、敵キャラクター、弾などのゲーム中にて毎フレーム更新される描画オブジェクトを定義するにはこのテクスチャオブジェクト2Dが適しており、例えば図よりSrcにテクスチャ上での切り出し範囲を設定することで、連番テクスチャの導入が可能です。他にも上下反転(TurnUL)や描画の中心軸(CenterPosition)を設定してからの回転描画が可能です。
逆に、マップチップや背景オブジェクトなどほとんど更新せずとも大量に描画する必要のあるテクスチャを扱う際にはマップオブジェクト2Dが適しています。
テクスチャについては、テクスチャの項を御覧ください。
なし
名称 | 説明 |
---|---|
Texture | 描画する2Dテクスチャのハンドル |
AlphaBlendMode | テクスチャ描画の際に適用されるアルファブレンドの種類 |
CenterPosition | テクスチャに適用する変換(拡大、回転、移動)の基準位置(親から見た相対座標にて設定) |
Color | テクスチャ描画の際の合成色のRGBA値を0~255の間で指定(Aの値を255未満にすると透明になる。) |
DrawingPriority | 描画の優先順位 |
TurnLR | テクスチャ描画の左右反転フラグ |
TurnUL | テクスチャ描画の上下反転フラグ |
Src | テクスチャ上の描画する切り出し範囲 |
TextureFilterType | 描画時のテクスチャフィルタ(近傍補間:Nearestもしくは線形補間:Linear) |
なし
TextureObject2Dクラスのサンプルです。
#include <ace.h>
// TextureObject2Dのサンプル。TextureObject2Dを用いて画像を表示しています。
int main()
{
// AC-Engineを初期化する。
ace::Engine::Initialize(ace::ToAString("TextureObject2D").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 tex = ace::Engine::GetGraphics()->CreateTexture2D(ace::ToAString("Data/Texture/Sample1.png").c_str());
// TextureObject2Dのインスタンスを生成する
auto obj = std::make_shared<ace::TextureObject2D>();
// 描画に使うテクスチャを設定する
obj->SetTexture(tex);
// 描画位置を指定する
obj->SetPosition(ace::Vector2DF(100, 100));
// レイヤーへ追加する
layer->AddObject(obj);
// AC-Engineのウインドウが閉じられていないか確認する。
while (ace::Engine::DoEvents())
{
// AC-Engineを更新する。
ace::Engine::Update();
}
// AC-Engineの終了処理をする。
ace::Engine::Terminate();
return 0;
}