- 博客(18)
- 资源 (64)
- 收藏
- 关注
原创 C#俄罗斯方块游戏
俄罗斯方块是一款非常经典的老游戏,相比现在的网络游戏和大型游戏而言,俄罗斯方块非常小。不要看似小,要实现俄罗斯方块的全部功能也不容易。先说说涉及的知识点:继承(不同的方块继承于方块类)、多态(每种方块都可以旋转、初始化,但是每种方块的旋转都不一样,采用抽象方法定义)、简单工厂设计模式(由工厂随机创建方块)等。(感谢周勇学员整理了所有资料。)俄罗斯方块分成六个步骤:1.俄罗斯方块
2010-08-23 23:00:00 3813 18
原创 俄罗斯方块之六——窗体设计
6.1 KeyDown事件,当方块不可以下落的时候,我们要处理游戏等级、层数、分数等数据还要把将方块放入二维数组中、下个方块的创建、判断是否结束。6.1.1 创建新的方块,方块类型是随机创建的,增加一个枚举类BlockType,存放方块的所有类型。通过简单工厂得到父类。每种方块的中心颜色和周围以颜色可以自定义。由于画板对象不同,位置不同,需要传入参数。 Code:
2010-08-23 22:41:00 1897 2
原创 俄罗斯方块之五——完善Game类
游戏界面所有的小方块对象都在二维数组SquareArray里面,判断数组里面的从低层到最顶层,每层里面的所有列都有对象则这行消除。5.1在Game类里写个判断是否为满行的方法IsFullLine(int row),传入当前行数。 Code: /// /// 判断满行 /// /// ///
2010-08-23 22:36:00 1266 1
原创 俄罗斯方块之四——方块子类
父类我们分析完了,现在来看看子类。父类里有两个抽象方法,以L型为例(其他类型同理,不仅7种类型)BlockL子类:4.1首先以0所在的小方块为基础朝北,顺时针旋转。用数字标记的小方块相对位置不变。 (如图) Code: public override void Init(Direction dir) { Squar
2010-08-23 22:32:00 1260 2
原创 俄罗斯方块之三——Block类
小方块有了,我们下一步就要得到游戏中的组合方块,这里创建一个Block类,为游戏中的组合方块类。那这个类有什么属性呢?位置(Location),周围颜色(SurroundColor),中心颜色(CenterColor) 。那么大小(Size)还需要吗,如果需要我们可以通过小方块的位置和数量得到。其实组合方块的Size是不需要的,我们以后的判断都是将组合块的所有小方块循环遍历的。3.1 一个组
2010-08-23 22:27:00 2121 1
原创 俄罗斯方块之二——Game类
用于控制游戏,保存公共字段和方法。在上面我们已经用到了方块的宽度和画板对象,在这里声明为静态的公共成员。 Code: public static Color BackColor; //游戏区域背景颜色 public static int Side = 20; //小方块宽度 public static Gra
2010-08-23 22:23:00 1197 2
原创 俄罗斯方块之一——Square类
俄罗斯方块的所有形状都是由若干小方块组成,一般情况下为4个小方块。所以我们创建一个小方块类Square类。有位置(Location),大小(Size),周围颜色(SurroundColor),中心颜色(CenterColor)4个属性,其中Size都一样。这里我们可以在构造方法里面直接赋值。 Code: #region ShowSquare 显示小方块
2010-08-23 22:20:00 3945 20
原创 我的记事本-C# RichTextBox实例
涉及知识点:1. 文本文件读写2. Xml文件读写3. RichTextBox控件的使用功能:用C#实现文件编辑软件(MyNotePad),能进行简单的文本编辑和RTF格式内容的编辑。并能实现文件的打开和关闭,以及软件配置信息的设置与保存等。适合于学习C#的初级和中级程序员。共分三讲,请点击超链查看。我的记事本 第
2010-08-16 13:53:00 3236 4
原创 我的记事本 第三讲:保存配置信息
默认字体、字号、背景色、前景色都是保存在Option.xml文件中。xmlversion="1.0"encoding="utf-8" ?>settings> fontname>微软雅黑fontname> fontsize>20fontsize> fontcolor>Blackfontcolor> backcolor>Whitebackcolor> wordwra
2010-08-16 13:48:00 1282 3
原创 我的记事本 第二讲:基本功能的实现
《MyNotepad》是类似于Word的软件,但没有Word功能那么强大,比记事本略强。《MyNotepad》是练习控件、文件操作的学习软件,而不是一款商业目的的产品。软件的基本功能有字体、字号、字型、对齐、编辑等操作,现在让我们来看看如何实现。l 字体:private void tsbFont_Click(object sender, EventArgs e) {
2010-08-16 13:47:00 4236 17
原创 我的记事本 第一讲:文件的打开与关闭
我的记事本 第一讲:文件的打开与关闭C#操作文件步骤:1. 创建文件流对象2. 创建读写器对象3. 读写文件4. 关闭读写器5. 关闭文件流l 打开文件private void tsmiOpen_Click(object sender, EventArgs e) {
2010-08-16 13:45:00 3256 17
原创 abstract和virtual方法实现多态的区别
多态就是不同对象对同一个消息的不同相应方式。举例:cut(消息)医生收到cut消息后,执行动手术;理发师收到cut消息后,执行减法;演员收到cut消息后,停止演出。三个不同对象,对同一个cut消息的反应都不同,这就是多态。在C#中abstract和virtual方法都能实现多态。1.用abstract修饰方法是抽象方法,没有方法体,该类必须声明为abstract c
2010-08-14 17:30:00 1746 8
原创 值类型与引用类型
C#中数据类型分为:值类型和引用类型。值类型包括:结构体、枚举引用类型包括:类、接口、数组、委托值类型源自System.ValueType,每个值类型的对象都有一个独立的内存区域(栈区)保存自己的值。引用类型源自System.Object,对象一般存储在堆区,而引用变量名存储在栈区。装箱:值类型--->引用类型拆箱:引用类型--->值类型int i=20;objec
2010-08-14 17:15:00 824 3
原创 结构体和类的区别
相同:1.可以包含字段、方法2.都可以实现事件 不同点(结构体):1.数据类型:值类型2.不可以继承3.不可以有默认构造方法,但始终能使用4.可以添加构造方法,但是必须带参数5.可以不用new创建对象6.字段不可以赋初值7.带参数构造方法中必须对所有的字段初始化不同点(类):1.数据类型:引用类型2.可以继承3.不写构造方法,系统自动
2010-08-14 17:12:00 994 1
原创 看看你能答对吗?
这是C#题目,答案在最下方。 Code: //第一题 int i=10; if(i=5){ Console.WriteLine("equals"); }else{ Console.WriteLine("not equals");
2010-08-14 17:06:00 1523 7
原创 C#中的数据类型转换
1.隐式转换 小数据类型赋给大数据类型 double d=2; int-->double2.显示转换 大数据类型赋给小数据类型 int i=(int)2.5; double-->int(2)3.Parse/ToString用于字符串和值类型转换 int i=int.Parse("123"); string s=123.ToString();4.Convert用于
2010-08-14 17:06:00 1096 1
原创 C#中模式窗体和非模式窗体的区别
frm.ShowDialog();//打开一个模式窗体frm.Show(); //打开非模式窗体区别:1.返回值不同,DialogResult/void2.模式窗体会使程序中断,直到关闭模式窗口3.打开模式窗体后不能切换到应用程序的其他窗体4.子窗体和模式窗体互斥。
2010-08-14 17:06:00 6201 2
原创 Java中的switch于C#中的switch的区别
C#switch语句可以使用的表达式类型:兼容int和string,兼容int类型的有很多,比如:byte、char、short、uint等。C#的switch中,case、default中有语句一定要加break。Java可以使用的表达式类型:兼容int,字符串就不能判断。switch用于等值判断,区间判断应使用多重if语句。
2010-08-14 16:42:00 3863
WPF TreeView递归异步绑定
2011-05-06
C# NetGoband
2010-04-03
prototype中文手册及API
2007-09-20
propedit_for_eclipse
2007-09-10
解决JBuilder2006中JSP不能使用泛型的问题
2007-09-04
JSF-API(CHM)
2007-08-28
struts自定义Validator示例
2007-08-24
PropertiesEditor for JBuilder
2007-08-23
WPF分页DataGrid(二)列右键菜单实现
2012-06-21
WPF分页DataGrid
2012-05-29
WPF使用装饰器实现SAP焦点样式(改进版)
2011-10-28
WPF使用装饰器实现SAP焦点样式
2011-09-29
MVVM中轻松实现Command绑定(五)获取事件参数EventArgs(2)
2011-08-11
利用prism实现ViewModel之间通讯的例子
2011-07-27
WPF数据国际化的实现
2011-07-22
WPF MVVM命令绑定
2011-07-12
WPF中全局开启或关闭动画效果
2011-06-08
Actipro WPF Studio 破解版-part2
2011-05-26
Actipro WPF Studio 破解版-part1
2011-05-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人