主にマップオブジェクト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();
}
}