Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        //填充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();
        }