テキストオブジェクト2D (TextObject2D)

概要

オブジェクト2Dクラスを拡張し、文字列を描画することが可能な2D描画オブジェクトです。

最低限、描画に使用するフォントと描画する文字列を設定すると図に示すように文字列の左上を基準に文字列を描画することが出来ます。フォントの設定によって図に示すように文字サイズが設定でき、枠線付き文字の描画や文字列の回転も可能です。

テキスト

他にも文字列の描画方向、描画色、アルファブレンドの種類、反転フラグなどが指定可能です。
ゲームのスコアやステータスなど文字を扱う描画オブジェクト全般に使用可能です。

フォントについてはフォントの項を御覧ください。

主なメソッド

なし

主なプロパティ

名称 説明
Font 描画文字列に使用するフォント
Text 描画する文字列。(\nで描画文字列を改行可能)
AlphaBlendMode テクスチャ描画の際に適用されるアルファブレンドの種類
CenterPosition 文字列描画の際に適用する変換(拡大、回転、移動)の基準位置(親から見た相対座標にて設定)
Color 文字列に合成する色のRGBA値を0~255の間で指定(Aの値を255未満にすると透明になる)
DrawingPriority 描画の優先順位
TurnLR 個々の文字の描画左右反転フラグ
TurnUL 個々の文字の描画上下反転フラグ
WritingDirection 文字列の描画する方向(左から右:Horizontalもしくは上から下:Vertical)
TextureFilterType 描画時のテクスチャフィルタ(近傍補間:Nearestもしくは線形補間:Linear)

主なイベント

なし

使用方法

TextObject2Dクラスのサンプルです。


  /// <summary>
  /// TextObject2Dのサンプル。TextObject2Dを用いて文字を表示しています。
  /// </summary>
  class TextObject2D
  {
      [System.STAThread]
      static void Main(string[] args)
      {
          // AC-Engineを初期化する。
          ace.Engine.Initialize("TextObject2D", 640, 480, new ace.EngineOption());
  
          // シーンを生成する
          var scene = new ace.Scene();
  
          // レイヤーを生成する
          var layer = new ace.Layer2D();
  
          // シーンにレイヤーを追加する
          scene.AddLayer(layer);
  
          // シーンを切り替える
          ace.Engine.ChangeScene(scene);
  
          // フォントを生成する
          var smallFont = ace.Engine.Graphics.CreateFont("Data/Font/small.aff");
  
          // TextObject2Dのインスタンスを生成する
          var fontObj = new ace.TextObject2D();
  
          // 描画に使うフォントを設定する
          fontObj.Font = smallFont;
  
          // 描画位置を指定する
          fontObj.Position = new ace.Vector2DF(100, 100);
  
          // 描画する文字列を指定する
          fontObj.Text = "文字列サンプル1";
  
          //レイヤーに追加する
          layer.AddObject(fontObj);
          
  
          // AC-Engineのウインドウが閉じられていないか確認する。
          while (ace.Engine.DoEvents())
          {
              // AC-Engineを更新する。
              ace.Engine.Update();
          }
  
          // AC-Engineの終了処理をする。
          ace.Engine.Terminate();
      }
  }