public void LoadLevel(FBLevel level) { //清除当前状态 Clear(); //保存 f_level = level; //加载图片 BackgroundImage = "file://" + FBConsts.MpsDir + "/" + level.Background; RoadImage = "file://" + FBConsts.MpsDir + "/" + level.Road; //寻路点 for (int i = 0; i < level.Path.Count; i++) { FBCoords c = level.Path[i]; FBGrid t = GetGrid(c.X, c.Y); f_road.Add(t); } //炮塔点 for (int i = 0; i < level.Holders.Count; i++) { FBCoords c = level.Holders[i]; FBGrid t = GetGrid(c.X, c.Y); t.CanHold = true; } }
//填充Level类数据 public static void FillLevel(string fileName, ref FBLevel level) { FileInfo file = new FileInfo(fileName); StreamReader sr = new StreamReader(file.OpenRead(), Encoding.UTF8); XmlDocument doc = new XmlDocument(); doc.Load(sr); level.Name = doc.SelectSingleNode("/Level/Name").InnerText; level.CardImage = doc.SelectSingleNode("/Level/CardImage").InnerText; level.Background = doc.SelectSingleNode("/Level/Background").InnerText; level.Road = doc.SelectSingleNode("/Level/Road").InnerText; level.InitScore = int.Parse(doc.SelectSingleNode("/Level/InitScore").InnerText); XmlNodeList nodes; nodes = doc.SelectNodes("/Level/Holder/Point"); for (int i = 0; i < nodes.Count; i++) { XmlNode node = nodes[i]; FBCoords p = new FBCoords( int.Parse(node.Attributes["X"].Value), int.Parse(node.Attributes["Y"].Value)); level.Holders.Add(p); } nodes = doc.SelectNodes("/Level/Path/Point"); for (int i = 0; i < nodes.Count; i++) { XmlNode node = nodes[i]; FBCoords p = new FBCoords( int.Parse(node.Attributes["X"].Value), int.Parse(node.Attributes["Y"].Value)); level.Path.Add(p); } nodes = doc.SelectNodes("/Level/Rounds/Round"); for (int i = 0; i < nodes.Count; i++) { XmlNode node = nodes[i]; FBRound r = new FBRound( int.Parse(node.Attributes["Monster"].Value), int.Parse(node.Attributes["Count"].Value) ); level.Rounds.Add(r); } sr.Close(); sr.Dispose(); }