public static void Save(TilesMap tilesmap, string path) { if (tilesmap == null) { throw new ArgumentException("Argument does not accept null", "tilesmap"); } if (path == null) { throw new ArgumentException("Argument does not accept null", "path"); } using (XmlTextWriter wr = new XmlTextWriter(path, Encoding.UTF8)) { wr.Formatting = Formatting.Indented; wr.WriteStartDocument(); wr.WriteStartElement("Tilesmap"); { wr.WriteAttributeString("columns", tilesmap.Columns.ToString()); wr.WriteAttributeString("rows", tilesmap.Rows.ToString()); wr.WriteStartElement("MatrixIndex"); { for (int i = 0; i < tilesmap.Rows; i++) { wr.WriteStartElement("Row"); { wr.WriteAttributeString("id", i.ToString()); for (int j = 0; j < tilesmap.Columns; j++) { wr.WriteString(tilesmap[j, i].ToString()); if (j != tilesmap.Columns - 1) { wr.WriteString("\t"); } } } wr.WriteEndElement(); // rows } } wr.WriteEndElement(); // Matrixindex if (tilesmap.TileSet != null) { TileSet.Save(wr, tilesmap.TileSet, path); } if (tilesmap.ListObject.Any()) { ObjectEditor.Save(wr, tilesmap.ListObject, path); } } wr.WriteEndElement(); // Tiles map wr.WriteEndDocument(); wr.Close(); wr.Dispose(); } }
// mở form để chọn ảnh và kích thước tile public void CreateTilesSet() { var _createTilesForm = new CreateTilesForm(); DialogResult rs = _createTilesForm.ShowDialog(); // lấy dữ liệu từ form if (rs == System.Windows.Forms.DialogResult.OK) { if (this.TilesMap == null) this.TilesMap = new TilesMap(10, 10); this.TilesMap.TileSet = _createTilesForm.Tileset; } }
// mở form để chọn ảnh và kích thước tile public void CreateTilesSet() { var _createTilesForm = new CreateTilesForm(); DialogResult rs = _createTilesForm.ShowDialog(); // lấy dữ liệu từ form if (rs == System.Windows.Forms.DialogResult.OK) { if (this.TilesMap == null) { this.TilesMap = new TilesMap(10, 10); } this.TilesMap.TileSet = _createTilesForm.Tileset; } }
public static TilesMap Load(string path) { TilesMap tilesmap = null; int columns = 0; int rows = 0; using (XmlTextReader reader = new XmlTextReader(path)) { while (reader.Read()) { if (reader.IsStartElement()) { if (reader.Name == "Tilesmap") { columns = Int32.Parse(reader.GetAttribute("columns")); rows = Int32.Parse(reader.GetAttribute("rows")); tilesmap = new TilesMap(columns, rows); } if (reader.Name == "Row") { int rownumber = Int32.Parse(reader.GetAttribute("id")); string indexs = reader.ReadString(); var row = indexs.Split('\t'); for (int i = 0; i < columns; i++) { tilesmap[i, rownumber] = Int32.Parse(row[i]); } } if (reader.Name == "TileSet") { tilesmap.TileSet = TileSet.Load(reader, path); } if (reader.Name == "Objects") { var listobject = ObjectEditor.Load(reader, path); tilesmap.ListObject = new BindingList <GameObject>(listobject); } } if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "Tilesmap") { break; } } } return(tilesmap); }
public static void Save(TilesMap tilesmap, string path) { if (tilesmap == null) throw new ArgumentException("Argument does not accept null", "tilesmap"); if (path == null) throw new ArgumentException("Argument does not accept null", "path"); using (XmlTextWriter wr = new XmlTextWriter(path, Encoding.UTF8)) { wr.Formatting = Formatting.Indented; wr.WriteStartDocument(); wr.WriteStartElement("Tilesmap"); { wr.WriteAttributeString("columns", tilesmap.Columns.ToString()); wr.WriteAttributeString("rows", tilesmap.Rows.ToString()); wr.WriteStartElement("MatrixIndex"); { for (int i = 0; i < tilesmap.Rows; i++) { wr.WriteStartElement("Row"); { wr.WriteAttributeString("id", i.ToString()); for (int j = 0; j < tilesmap.Columns; j++) { wr.WriteString(tilesmap[j, i].ToString()); if (j != tilesmap.Columns - 1) wr.WriteString("\t"); } } wr.WriteEndElement(); // rows } } wr.WriteEndElement(); // Matrixindex if (tilesmap.TileSet != null) { TileSet.Save(wr, tilesmap.TileSet, path); } if (tilesmap.ListObject.Any()) { ObjectEditor.Save(wr, tilesmap.ListObject, path); } } wr.WriteEndElement(); // Tiles map wr.WriteEndDocument(); wr.Close(); wr.Dispose(); } }
public static TilesMap Load(string path) { TilesMap tilesmap = null; int columns = 0; int rows = 0; using (XmlTextReader reader = new XmlTextReader(path)) { while (reader.Read()) { if (reader.IsStartElement()) { if (reader.Name == "Tilesmap") { columns = Int32.Parse(reader.GetAttribute("columns")); rows = Int32.Parse(reader.GetAttribute("rows")); tilesmap = new TilesMap(columns, rows); } if (reader.Name == "Row") { int rownumber = Int32.Parse(reader.GetAttribute("id")); string indexs = reader.ReadString(); var row = indexs.Split('\t'); for (int i = 0; i < columns; i++) { tilesmap[i, rownumber] = Int32.Parse(row[i]); } } if (reader.Name == "TileSet") { tilesmap.TileSet = TileSet.Load(reader, path); } if (reader.Name == "Objects") { var listobject = ObjectEditor.Load(reader, path); tilesmap.ListObject = new BindingList<GameObject>(listobject); } } if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "Tilesmap") break; } } return tilesmap; }