public GameObject(Bitmap tile, int x, int y) { ImageControl = ImageDrawer.BitmapToControl(tile); X = x; Y = y; }
/// <summary> /// Создание карты из файла /// </summary> /// <param name="path"></param> public Map(string path) { XmlDocument xDoc = new XmlDocument(); xDoc.Load(path); // получим корневой элемент XmlElement xRoot = xDoc.DocumentElement; // обход всех узлов в корневом элементе TileWidth = Convert.ToInt32(xRoot.GetAttributeNode("tilewidth").Value); TileHeight = Convert.ToInt32(xRoot.GetAttributeNode("tileheight").Value); MapWidth = Convert.ToInt32(xRoot.GetAttributeNode("width").Value); MapHeight = Convert.ToInt32(xRoot.GetAttributeNode("height").Value); MapString = new string[MapWidth, MapHeight]; Tiles = new List <int[]>(4); LayersNames = new List <string>(4); Tractors = new List <Tractor>(); Targets = new List <GameObject>(); // парсинг xml-файла карта int countTilesets = 0; foreach (XmlNode xnode in xRoot) { if (xnode.Name == "tileset") { countTilesets++; Tileset = xnode.Attributes.GetNamedItem("source").Value; } // получаем атрибут name if (xnode.Name == "layer") { LayersNames.Add(xnode.Attributes.GetNamedItem("name").Value); XmlNode data = xnode.FirstChild; int[] tiles = new int[MapHeight * MapWidth]; int index = 0; foreach (XmlNode childnode in data.ChildNodes) { if (childnode.Attributes.Count > 0) { tiles[index] = Convert.ToInt32(childnode.Attributes.GetNamedItem("gid").Value); } else { tiles[index] = 0; } index++; } Tiles.Add(tiles); } if (xnode.Name == "objectgroup") { foreach (XmlNode childnode in xnode.ChildNodes) { // name //x //y } } } LoadMap(); MapBackground = ImageDrawer.BitmapToControl(MapBackgroundBitmap); }