public SelectMapChipScene(Control control) : base(control) { localPos.SetVect(0, 0); // コンストラクタ: マップチップのサイズ MapChip = new MapChip(40); AddChild(MapChip); }
//マップpalletに新しいマップチップを登録する public void AddMapChip(MapChip mapChip) { int x = index % 6; int y = index / 6; mapChip.anchor.SetVect(0, 0); mapChip.LocalPos = new DXEX.Vect(x * 40, y * 40); mapChips[x, y] = mapChip; index++; }
//画像をセット public void PutImage(MapChip mapChip, int layer) { if (mapChip.GetTexture() == null) { return; } mapChips[layer].SetId(mapChip.Id); mapChips[layer].SetTexture(mapChip.GetTexture()); mapChips[layer].Angle = mapChip.Angle; mapChips[layer].turnFlag = mapChip.turnFlag; }
//指定のマスのマップチップをwriteMapChipで置き換える public void EditWrite(Point point, MapChip writeMapChip, int currentLayer) { //マップサイズ範囲外なら終了 if (point.X >= mapData.MapSizeX || point.Y >= mapData.MapSizeY || point.X < 0 || point.Y < 0) { return; } //マップチップ置き換え mapData.List[point.X, point.Y].PutImage(writeMapChip, currentLayer); }
//プロジェクトからマップチップパレットをロードする public void LoadProject(MapChipResourceManager mcrm) { this.mcrm = mcrm; mapPalletData.ClearMapChip(); for (int id = 0; id <= mcrm.LastID(); id++) { MapChip mapChip = new MapChip(40); mapChip.SetTexture(mcrm.GetTexture(id)); mapChip.SetId(mcrm.GetId(id)); mapPalletData.AddMapChip(mapChip); AddChild(mapChip); } }
//初期化 public MapOneMass(int mapChipSize) { mapChips = new MapChip[MapEditForm.maxLayer]; this.mapChipSize = mapChipSize; anchor.SetVect(0, 0); //レイヤーの数だけ画像表示用スプライトを生成する for (int i = 0; i < MapEditForm.maxLayer; i++) { mapChips[i] = new MapChip(mapChipSize); mapChips[i].anchor.SetVect(0, 0); AddChild(mapChips[i]); } }
//ファイルから新しいマップチップを生成し登録する public void AddMapChip(string fileName) { MapChip mapChip = new MapChip(40); // : MapChipがSpriteを所持ではなく継承しちゃってる try { mapChip.SetTexture(fileName); mapChip.SetId(mcrm.PushImageFile(fileName)); } catch (Exception) { return; } mapPalletData.AddMapChip(mapChip); AddChild(mapChip); }
//パネル上でマウスクリックされた時、マップチップを編集する public void MapMouseAction(Point point, int currentLayer, MapChip mapChip) { //左クリックされている時の処理 if ((Control.MouseButtons & MouseButtons.Left) == MouseButtons.Left) { //マップを書く MapDataControl.EditMapChip. EditWrite(mws.LocationToMap(point, MapDataControl.MapChipSize), mapChip, currentLayer); } //右クリックされている時の処理 else if ((Control.MouseButtons & MouseButtons.Right) == MouseButtons.Right) { //マップをクリアします MapDataControl.EditMapChip.EditErase(mws.LocationToMap(point, MapDataControl.MapChipSize), currentLayer); } }