チップ2D (Chip2D)

概要

主にマップオブジェクト2Dクラス等で使用する、チップを定義したものです。
描画するテクスチャやそれに適用するオプションが設定可能です。

テクスチャについては、テクスチャの項を御覧ください。

主なメソッド

なし

主なプロパティ

名称 説明
Texture 描画するテクスチャ
TextureFilterType テクスチャ描画の際に適用されるフィルタの種類
AlphaBlendMode テクスチャ描画の際に適用されるアルファブレンドの種類
Color テクスチャ描画の際の合成色
TurnLR テクスチャ描画の左右反転フラグ
TurnUL テクスチャ描画の上下反転フラグ
Src テクスチャ上の描画する切り出し範囲
CenterPosition テクスチャに適用する変換(拡大、回転、移動)の基準位置(マップオブジェクトから見た相対座標にて設定)
Position このチップの属するマップオブジェクト2Dに対する相対的な位置
Angle このチップの属するマップオブジェクト2Dに対する相対的な回転角度
Scale このチップの属するマップオブジェクト2Dに対する相対的な拡大率

使用方法

Chip2DはMapObject2Dと必ず組み合わして使用します。
そのため、MapObject2Dクラスのサンプルを提示します。


  /// <summary>
  /// MapObject2Dのサンプル。敷き詰められたタイルをカメラで撮影して画面に表示しています。
  /// </summary>
  class MapObject2D
  {
      [System.STAThread]
      static void Main(string[] args)
      {
          // AC-Engineを初期化する。
          ace.Engine.Initialize("MapObject2D", 640, 480, new ace.EngineOption());
  
          // シーンを生成する
          var scene = new ace.Scene();
  
          // レイヤーを生成する
          var layer = new ace.Layer2D();
  
          // シーンにレイヤーを追加する
          scene.AddLayer(layer);
  
          // シーンを切り替える
          ace.Engine.ChangeScene(scene);
  
          // カメラを設定する。
          var camera = new ace.CameraObject2D();
  
          camera.Src = new ace.RectI(0, 0, 640, 480);
          camera.Dst = new ace.RectI(0, 0, 640, 480);
  
          {
              // マップオブジェクトを生成する。
              var mapObject = new ace.MapObject2D();
  
              var texture = ace.Engine.Graphics.CreateTexture2D("Data/Texture/Sample2.png");
  
              // マップオブジェクトに50*50=2500個のチップを登録する。
              for (int i = 0; i < 50; ++i)
              {
                  for (int j = 0; j < 50; ++j)
                  {
                      // チップを生成する。
                      var chip = new ace.Chip2D();
  
                      // チップにテクスチャを設定する。
                      chip.Texture = texture;
  
                      // チップの描画先を指定する。
                      chip.Position = new ace.Vector2DF(i * 40 - 1000, j * 40 - 1000);
  
                      // マップオブジェクトにチップを追加する。
                      mapObject.AddChip(chip);
                  }
              }
  
              // レイヤーにマップオブジェクトを追加する。
              layer.AddObject(mapObject);
  
              // レイヤーにカメラオブジェクトを追加する。
              layer.AddObject(camera);
          }
  
          // AC-Engineのウインドウが閉じられていないか確認する。
          while (ace.Engine.DoEvents())
          {
              // カメラを移動させる
              var pos = camera.Src;
              pos.X += 1;
              pos.Y += 1;
              pos.X %= 1000;
              pos.Y %= 1000;
              camera.Src = pos;
  
              // AC-Engineを更新する。
              ace.Engine.Update();
          }
  
          // AC-Engineの終了処理をする。
          ace.Engine.Terminate();
      }
  }