⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 config.cs

📁 陈广老师讲课的源代码
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Windows.Forms;
using System.Xml;
using System.IO;
using System.Drawing;
using System.Collections;


namespace MyTetris
{
    /// <summary>
    /// 配置类,用来读取、保存xml文件
    /// </summary>
    class Config
    {
        /// <summary>
        /// 下移键
        /// </summary>
        private Keys _downKey;
        /// <summary>
        /// 丢下键
        /// </summary>
        private Keys _dropKey;   
        /// <summary>
        /// 左移键
        /// </summary>
        private Keys _leftKey;    
        /// <summary>
        /// 右移键
        /// </summary>
        private Keys _rightKey;
        /// <summary>
        /// 顺时针旋转
        /// </summary>
        private Keys _DeasilKey;        
        /// <summary>
        /// 逆时针旋转
        /// </summary>
        private Keys _DiseconomicsKey; 
        /// <summary>
        /// 水平格子数  
        /// </summary>
        private int _coorWidth; 
        /// <summary>
        /// 垂直格子数
        /// </summary>
        private int _coorHeight;     
        /// <summary>
        /// 格子像素
        /// </summary>
        private int _rectPix;  
        /// <summary>
        /// 背景色 
        /// </summary>
        private Color _backColor;          
        /// <summary>
        /// 方块集合信息
        /// </summary>
        private BlockInfoArr info = new BlockInfoArr();           

        #region  属性
		 
	

        public Keys DownKey
        {
            get { return _downKey; }
            set { _downKey = value; }
        }
        public Keys DropKey
        {
            get { return _dropKey; }
            set { _dropKey = value; }
        }
        public Keys LeftKey
        {
            get { return _leftKey; }
            set { _leftKey = value; }
        }
        public Keys RightKey
        {
            get { return _rightKey; }
            set { _rightKey = value; }
        }
        public Keys DeasilKey
        {
            get { return _DeasilKey; }
            set { _DeasilKey = value; }
        }
        public Keys DiseconomicsKey
        {
            get { return _DiseconomicsKey; }
            set { _DiseconomicsKey = value; }
        }
        public int CoorWidth
        {
            get { return _coorWidth; }
            set { _coorWidth = value; }
        }
        public int CoorHeight
        {
            get { return _coorHeight; }
            set { _coorHeight = value; }
        }
        public int RectPix
        {
            get { return _rectPix; }
            set { _rectPix = value; }
        }
        public Color BackColor
        {
            get { return _backColor; }
            set { _backColor = value; }
        }

        public  BlockInfoArr Info
        {
            get { return info; }
            set { info = value; }
        }
        #endregion

        /// <summary>
        /// 读取xml文件
        /// </summary>
        public void LoadFromXml()       
        {
            XmlTextReader xtr;
            if (File.Exists("Config.xml"))
            {
                xtr = new XmlTextReader("Config.xml");
            }
            else        //如果外部xml文件不存在,则从嵌入资源内读取.xml
            {
                Assembly asm=Assembly.GetExecutingAssembly();
                Stream s = asm.GetManifestResourceStream("MyTetris.Config.xml");
                xtr=new XmlTextReader(s);
            }
            string key="";
            try{
                while(xtr.Read())
                {
                    if(xtr.NodeType==XmlNodeType.Element)
                    {
                        if(xtr.Name=="id"){
                            
                            key=xtr.ReadElementString().Trim();                          
                            info.AddBlock(key,"");
                        }
                        else if(xtr.Name=="color"){
                            info[key]=xtr.ReadElementString().Trim();   
                        }
                        else if(xtr.Name=="downKey") {                          
                            _downKey=(Keys)Convert.ToInt32(xtr.ReadElementString().Trim());
                        }
                        else if(xtr.Name=="dropKey") {
                            _dropKey=(Keys)Convert.ToInt32(xtr.ReadElementString().Trim());
                        }
                        else if(xtr.Name=="leftKey") {
                            _leftKey=(Keys)Convert.ToInt32(xtr.ReadElementString().Trim());
                        }
                        else if(xtr.Name=="rightKey") {
                            _rightKey=(Keys)Convert.ToInt32(xtr.ReadElementString().Trim());
                        }
                        else if(xtr.Name=="DeasilKey") {
                            _DeasilKey=(Keys)Convert.ToInt32(xtr.ReadElementString().Trim());
                        }
                        else if(xtr.Name=="DiseconomicsKey") {
                            _DiseconomicsKey=(Keys)Convert.ToInt32(xtr.ReadElementString().Trim());
                        }
                        else if(xtr.Name=="coorWidth") {
                            _coorWidth=Convert.ToInt32(xtr.ReadElementString().Trim());
                        }
                        else if(xtr.Name=="coorHeight") {
                            _coorHeight=Convert.ToInt32(xtr.ReadElementString().Trim());
                        }
                        else if(xtr.Name=="rectPix") {
                            _rectPix=Convert.ToInt32(xtr.ReadElementString().Trim());

                        }
                        else if(xtr.Name=="backColor") {
                            _backColor=Color.FromArgb(Convert.ToInt32(xtr.ReadElementString().Trim()));
                        }
                        
                    }
                }
            }catch(Exception e){
                //MessageBox.Show(e.ToString());
            }finally{
                if(xtr!=null)
                    xtr.Close();
            }
        }

        /// <summary>
        /// 保存xml文件
        /// </summary>
        public void SaveToXml()
        {
            XmlDataDocument xdd = new XmlDataDocument();
            xdd.LoadXml("<BlockConfig></BlockConfig>");
            XmlNode root = xdd.SelectSingleNode("BlockConfig");
            //写方块信息
            for (int i = 0; i < info.Length;i++)
            {
                XmlElement xeType = xdd.CreateElement("type");

                XmlElement xeId = xdd.CreateElement("id");
                xeId.InnerText = ((BlockInfo)info[i]).GetIdStr();
                xeType.AppendChild(xeId);

                XmlElement xeColor = xdd.CreateElement("color");
                xeColor.InnerText = ((BlockInfo)info[i]).GetColorStr();
                xeType.AppendChild(xeColor);

                root.AppendChild(xeType);

            }
            //写按键信息
            XmlElement xelKey = xdd.CreateElement("key");

            XmlElement xelDownKey = xdd.CreateElement("downKey");
            xelDownKey.InnerText = Convert.ToInt32(_downKey).ToString();
            xelKey.AppendChild(xelDownKey);

            XmlElement xelDropKey = xdd.CreateElement("dropKey");
            xelDropKey.InnerText = Convert.ToInt32(_dropKey).ToString();
            xelKey.AppendChild(xelDropKey);

            XmlElement xelLeftKey = xdd.CreateElement("leftKey");
            xelLeftKey.InnerText = Convert.ToInt32(_leftKey).ToString();
            xelKey.AppendChild(xelLeftKey);

            XmlElement xelRightKey = xdd.CreateElement("rightKey");
            xelRightKey.InnerText = Convert.ToInt32(_rightKey).ToString();
            xelKey.AppendChild(xelRightKey);


            XmlElement xelDeasilKey = xdd.CreateElement("DeasilKey");
            xelDeasilKey.InnerText = Convert.ToInt32(_DeasilKey).ToString();
            xelKey.AppendChild(xelDeasilKey);

            XmlElement xelDiseconomicsKey = xdd.CreateElement("DiseconomicsKey");
            xelDiseconomicsKey.InnerText = Convert.ToInt32(_DiseconomicsKey).ToString();
            xelKey.AppendChild(xelDiseconomicsKey);

            root.AppendChild(xelKey);   //将按键信息放入key节点

            //写界面信息
            XmlElement xelSurFace = xdd.CreateElement("surface");

            XmlElement xelCoorWidth = xdd.CreateElement("coorWidth");
            xelCoorWidth.InnerText =_coorWidth.ToString();
            xelSurFace.AppendChild(xelCoorWidth);

            XmlElement xelCoorHeight = xdd.CreateElement("coorHeight");
            xelCoorHeight.InnerText = _coorHeight.ToString();
            xelSurFace.AppendChild(xelCoorHeight);

            XmlElement xelRectPix = xdd.CreateElement("rectPix");
            xelRectPix.InnerText = _rectPix.ToString();
            xelSurFace.AppendChild(xelRectPix);            

            XmlElement xelBcolor = xdd.CreateElement("backColor");
            xelBcolor.InnerText = _backColor.ToArgb().ToString();
            xelSurFace.AppendChild(xelBcolor);

            root.AppendChild(xelSurFace);

            xdd.Save("Config.xml");
        }
    }
}



      

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -