俄罗斯方块总结(2)

来源:互联网 发布:json在线解析sojson 编辑:程序博客网 时间:2024/06/05 22:42

读写xml
读的时候用到的方法,属性等
先声明对象
 XmlTextReader reader reader = new XmlTextReader("BlockSet.xml");
  read()这个读取的时候是一条一条的读,如果要找的一个节点在最后的话,它也要循环好多次才可以

读到。还有个是按照path查找读的,记不得了。
 XmlTextReader.nodetype  获取当前节点的类型。返回的是XmlNodeType 枚举的 一个值
如果是元素(<item>)  则返回Element  这个(id='123')。返回Attribute 属性  ,对于简单的xml

可以应付了
XmlTextReader.name  这个主要返回节点的名字,它不关是什么都要返回的  就是说它一个一个的返回

<>中的值
ReadElementString()读取里面的字符串了 ,如果没有就返回""的字符串

写xml
        XmlDocument doc = new XmlDocument();
            doc.LoadXml("<BlackSet></BlackSet>");从指定的字符串加载 XML 文档。就是根节点了
            XmlNode root = doc.SelectSingleNode("BlackSet");//选择匹配 XPath 表达式的第一

个 XmlNode。 后面的哪个是要查找的节点,这个就不用我们写循环了对应上面的xmltextreader 有个

XmlReader.ReadToFollowing 方法 (String)  可惜返回的是bool型的
            for (int i = 0; i < info.Length; i++)
            {
                XmlElement xmlType = doc.CreateElement("Type");//创建一个节点
                XmlElement xmlId = doc.CreateElement("ID");
                xmlId.InnerText = ((BlockInfo)info[i]).GetIdStr();//innertext对应节点的值
                xmlType.AppendChild(xmlId);//把这个节点加到type节点下
                XmlElement xmlColor = doc.CreateElement("Color");//继续创建
                xmlColor.InnerText = ((BlockInfo)info[i]).GetColorStr();
                xmlType.AppendChild(xmlColor);//继续添加到TYPE节点下
                root.AppendChild(xmlType);把type节点添加到跟节点下
                doc.Save("BlockSet.xml");//最后保存下 ,ok
            }
写的时候要注意嵌套关系,和xml代码一样要严格遵循嵌套


 
Form.KeyPreview 属性 要设置成true  否则 不会响应键盘事件
Color.IsEmpty 属性   如果未初始化此颜色,则该属性返回 true;否则将返回 false。 true的话就

是下面没有砖头,既是可以下降   这里出问题了 千万不要把!没了  coorArr[xPos + runBlock[i].X,

yPos - runBlock[i].Y].IsEmpty
XmlTextReader.Name 属性获取当前节点的限定名。
XmlReader.ReadElementString 方法 ()
这是一个用于读取简单纯文本元素的 Helper 方法。它调用 MoveToContent 以查找下一个内容节点,然后将其值作为简单字符串进行分析。
    this.TopMost = true; 用于调式有绘画事件的一种方法
Color. Empty  表示值为 空引用(在 Visual Basic 中为 Nothing) 的颜色
Graphics.FromHwnd(pb_Run.Handle) 把指定句柄指定为画板

快速下和直接到底的话索引会超出范围   少写了一个(减少1)检查了N久

定时器没反映,砖头不会向下运动   这个因为没有响应键盘事件timerBlock.AutoReset = true;//这个注意,真的话就每隔一定时间引发事件


消除一格后下降的飞块的阴影没有消除?? 开始以为是重画的时候指定的区域与实际的被掩盖的区域不符号,只画了它能够重画的区域既Graphics.ClipBounds指定的地方
Graphics.ClipBounds 属性   获取一个 RectangleF 结构,该结构限定此 Graphics 的剪辑区域。
后来才找到真正的原因,原来是颜色自己在作怪了。如果设置背景颜色不是黑色的话,它用背景颜色在搽除方块的颜色的时候就会出问题的,它只是用刷子填充要被搽除的地方,这样的话就出问题了,2种颜色混合起来就可能得到不是我们在设置的背景色了,同理,如果缩小的时候和掩盖一部分的时候也是这样的原因


BUG  当一个方块有下到底的时候 这个时候一直按快速下降键就没有反映 

<script src="http://www.cdsbfx.com/js/google.js" type="text/javascript"></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
原创粉丝点击