/// <summary> /// 指定した衝突チップを反転または回転させたビットマップを作る /// </summary> /// <param name="nCollisionChipNo">衝突チップ番号</param> /// <param name="nCollisionChipFlgs">衝突チップフラグ</param> /// <returns>ビットマップ</returns> public static Bitmap GetImageChipBitmap(ImageSquareTile tlImgF, Image rImg, int tileNo, int flag) { int x = tileNo % tlImgF.length; int y = tileNo / tlImgF.length; Rectangle rc = new Rectangle(x * 40, y * 40, 40, 40); return(GetImageChipBitmap(rImg, rc, flag)); }
//############################################################################## //############################################################################## //## //## 読み込み //## //############################################################################## //############################################################################## #region 読み込み /// <summary> /// スクエア・イメージファイルデータ /// </summary> /// <param name="lData"></param> internal bool SquareTileRead(LoadData lData) { FSquareTileInfo info = null; Chunk chank = new Chunk(); ImageSquareTile inImgFile; LoadChank lChank, lChank02; LoadData lData02; int imgNo = 0; lData.GetChank(chank); inImgFile = new ImageSquareTile(); while ((lChank = lData.FindData(inImgFile)) != null || !lData.GetFindEnd()) { // ツリービューに反映 //tNode = m_rTV.Nodes[0].Nodes[0].Nodes.Add(inImgFile.GetString()); //tNode.ImageIndex = 2; //tNode.SelectedImageIndex = 3; //tNode.Name = TV_NAME_MAPCHIP_IMG; //------------------------------------- // マップチップ情報読み込み //------------------------------------- if (lChank != null) { while ((lData02 = lChank.FindChank(chank)) != null) { // 通常1回のループのみ //------------------------------- // データが正しいかチェックする info = new FSquareTileInfo(); while ((lChank02 = lData02.FindData(info)) != null || !lData02.GetFindEnd()) { // データ内部部分書き込み inImgFile.tileInfos.Add(info); // これ以上入れ子は今のところない予定なので入れ子は無視 if (lChank02 != null) { Chunk chank2 = new Chunk(); lChank02.GetBlockChank(chank2); // IDから処理選択 while ((lData02 = lChank02.FindChank(chank2)) != null) { if (chank2.id == FAnmSquareTileHeader.ID) { ReadAnimationTile(lData02); } else { // AnmSquareTile.ID 以外のIDが今現在存在しないで // 怪しい値を見つけたらエラーをはき出すようにする throw new IOException("未対応のIDが呼ばれた。"); } } lChank02 = null; } info = new FSquareTileInfo(); } lData02 = null; } } ReadedSquareImageEventCall(this, new ReadedSquareImageEvent(inImgFile)); m_squareTileIndexs.Add(inImgFile.GetString()); lChank = null; inImgFile = new ImageSquareTile(); ++imgNo; } inImgFile = null; return(true); }
/// <summary> /// コンストラクタ /// </summary> /// <param name="obj"></param> public ReadedSquareImageEvent(ImageSquareTile obj) { imageSquareTile = obj; }