MapChipX
マップの回転に対応し、MovieClipやSpriteなどをマップチップのソースとして扱えるAS3用マップチップ配置ライブラリです。DisplayObjectContainerクラスを継承してるものならなんでもマップチップにできます。
上記動作サンプルをみてもらえれば分かりますが、ゲーム用というより派手なビジュアル表現を目的にしたものです。マップ自体がタイリングされた座標空間となっています。(上下左右が繋がっています)
ソースコード
- MapChipX
- 動作サンプルのソース
使い方
- マップチップにしたい素材を用意する
- チップごとにChipInfoオブジェクトを生成し、情報を保存
- ChipInfoArrayオブジェクト(配列を拡張したもの)にChipInfoを登録
- ChipInfoArrayのインデックスに対応させた2次元配列のマップデータを作る
- 上記のマップデータとChipInfoArayを、描画担当のMapChipXオブジェクト生成時に引き渡し表示用オブジェクトを生成
- MapChipXオブジェクトを表示ステージ上に配置
- MapChipX.update(x,y,rotation)を呼び出すことで指定座標を表示します。
各クラスの詳細
ChipInfo
チップのソースと、ソースから生成した表示用のビットマップデータを保持します。
- コンストラクタ
- ChipInfo(src:DisplayObjectContainer, chipWidth:uint, chipHeight:uint, transparent:Boolean = false)
- メソッド
- update():void
- マップ表示に使われるチップのビットマップをソースを元に更新します。チップが静止画なら呼び出す必要はありません。
- update():void
ChipInfoArray
ChipInfoの配列。Arrayクラスの継承で、チップの縦横幅を保持する以外は普通の配列と同じです。
- コンストラクタ
- ChipInfoArray(chipWidth:uint, chipHeight:uint, ...args)
MapChipX
実際のマップ描画を行います。Spriteクラスを継承しています。
- コンストラクタ
- MapChipX(map:Array, ChipInfos:!ChipInfoArray, frameWidth:uint, frameHeight:uint, transparent:Boolean=false, staticChips=false)
- mapはマップ情報を格納した2次元配列([行][列])です。格納する要素は、表示させたいチップを格納したChipInfoArray配列のインデックスです。
- frameWidth, frameHeightは表示するマップの幅を指定します。内部的には回転に対応させるためにこれ以上のサイズで描画されています。特にマスク処理などはしていませんので、必要であれば行ってください。
- マップチップが静止画のみの場合、staticChipsをtrueにすることでパフォーマンスが向上します。
- MapChipX(map:Array, ChipInfos:!ChipInfoArray, frameWidth:uint, frameHeight:uint, transparent:Boolean=false, staticChips=false)
- メソッド
- update(centerX:int, centerY:int, centerRotation:Number = 0)
- 指定座標を描画の中心座標としてマップを描画します。角度を指定するcenterRotationは度数法です(ラジアンではありません)。
- マップ自体がタイリングされた座標空間です。指定する座標はマップの大きさを超えていてもマイナスでも問題ありません。
- update(centerX:int, centerY:int, centerRotation:Number = 0)
ライセンス
MIT License