int GetColumn(Tile Start, Tile end) { String StartName = Path.GetFileNameWithoutExtension(Start.Filename); String EndName = Path.GetFileNameWithoutExtension(end.Filename); String[] strs = StartName.Split('-'); int startRow = int.Parse(strs[0]); int startColumn = int.Parse(strs[1]); strs = EndName.Split('-'); int endRow = int.Parse(strs[0]); int endColumn = int.Parse(strs[1]); return endColumn - startColumn+1; }
public Detail LoadMapDetail() { Detail detail = new Detail(); String detail_file_name = Path.Combine(url, "detail.txt"); FileStream file = new FileStream(detail_file_name, FileMode.Open); StreamReader reader = new StreamReader(file, Encoding.UTF8); String level_str = reader.ReadLine(); String[] lvls = level_str.Split(' '); file.Close(); reader.Close(); for (int i = 0; i < lvls.Length; i++) { Level level = new Level(); String lvl_path_name = Path.Combine(url, lvls[i]); string[] fileList = System.IO.Directory.GetFileSystemEntries(lvl_path_name); for (int j = 0; j < fileList.Length;j = j+4 ) { Tile tile = new Tile(); String name = Path.GetFileNameWithoutExtension(fileList[j]); tile.Filename = fileList[j+1]; file = new FileStream(fileList[j], FileMode.Open); reader = new StreamReader(file, Encoding.UTF8); tile.Dx = double.Parse(reader.ReadLine()); reader.ReadLine(); reader.ReadLine(); tile.Dy = -double.Parse(reader.ReadLine()); tile.X = double.Parse(reader.ReadLine()); tile.Y = double.Parse(reader.ReadLine()); String Name = System.IO.Path.GetFileNameWithoutExtension(tile.Filename); String[] strs = Name.Split('-'); tile.Row = int.Parse(strs[0]); tile.Column = int.Parse(strs[1]); tile.RowColumn = tile.Row + "-" + tile.Column; level.M_Tiles.Add(tile.RowColumn,tile); } level.FTile = level.M_Tiles[level.M_Tiles.Keys.First<String>()]; level.LTile = level.M_Tiles[level.M_Tiles.Keys.Last<String>()]; level.Level_Name = lvls[i]; detail.Levels.Add(level); } return detail; }
public Tile getTile(int row, int column) { Tile FTile = M_Tiles[M_Tiles.Keys.First<String>()]; Tile LTile = M_Tiles[M_Tiles.Keys.Last<String>()]; Tile t = null; if (row < FTile.Row || row > LTile.Row || column < FTile.Column || column > LTile.Column) { t = new Tile(); t.Dx = FTile.Dx; t.Dy = FTile.Dy; t.X = FTile.X + (column - FTile.Column) * 256 * t.Dx; t.Y = FTile.Y - (row - FTile.Row) * 256 * t.Dy; t.Filename = "map/default.jpg"; } else t = M_Tiles[row + "-" + column]; return t; }
public List<Tile> GetTiles_M(int row, int column) { Tile FTile = M_Tiles[M_Tiles.Keys.First<String>()]; Tile LTile = M_Tiles[M_Tiles.Keys.Last<String>()]; List<Tile> list = new List<Tile>(); for (int i = row; i < row + Total_Row;i++ ) for(int j=column;j<column + Total_Column ; j++) { Tile t = null; if (i < FTile.Row || i > LTile.Row || j < FTile.Column || j > LTile.Column) { t = new Tile(); t.Dx = FTile.Dx; t.Dy = FTile.Dy; t.X = FTile.X + (j - FTile.Column) * 256 * t.Dx; t.Y = FTile.Y - (i - FTile.Row) * 256 * t.Dy; t.Filename = "map/default.jpg"; } else t = M_Tiles[i + "-" + j]; list.Add(t); } return list; }