摘要:
爱因斯坦曾在20世纪初提过一个经典问题,据说世界上有98%的人回答不出来问题:在一条街上,有5座房子,喷了5中颜色。每个房子住着不同国籍的人。每个人喝不同的饮料,抽不同品牌的香烟,养不同的宠物。问题是:谁养鱼?提示:1.英国人住红色房子2.瑞典人养狗3.丹麦人喝茶4.绿色房子在白色房子左边5.绿房子主人喝咖啡6.抽PallMall香烟的人养鸟7.黄色房子的主人抽Dunhill香烟8.住在中间房子的人喝牛奶9.挪威人住第一间房10.抽Bleeds香烟的人住在养猫的人隔壁11.养马的人住抽Dunhill香烟的人隔壁12.抽BlueMaster的人喝啤酒13.德国人抽Prince香烟14.挪威人住蓝 阅读全文
摘要:
一.接着上一节的Control.cs的内容,我们继续完善。为了增强俄罗斯方块的趣味性,我们在游戏一开始就增加一些静态方块,需要一个方法,我们只用定义静态方块的高度就可以实现了: /// <summary> /// 构造固定砖块 /// </summary> /// <param name="high">高度</param> private void Paintguding(int high) { for (int h = 0; h < high; h++) { for (int i = 0; i < width; 阅读全文
摘要:
一.接下来,我们将创建俄罗斯方块的控制操作类。右键单击项目,选择“添加->类”,建立一个Control.cs类。在这个类中,我们先定义一些初始变量: public Rect[,] board; //游戏画板 public Rect[,] readyBoard; //准备方块画板 public Block runBlock; //移动中的方块 public Block readyBlock; //准备方块 public event EventHandler GameOver; //游戏结束事件 public GameStatus status; //游戏状态 private Dispatc 阅读全文
摘要:
上一节中我们已经写好了构建俄罗斯方块的基类,接下来右键单击项目选择“添加->类”,创建Block_XX.cs这个文件,我们把7个形状的俄罗斯方块的类写在里面。由于在基类中我们已经实现了大部分功能,所以在子类中,我们只用设置方块的具体形状和颜色就可以了,先看“Z”,反“Z”,“L”,反“L”,“T”这5种方块。 #region Z形方块 /// <summary> /// Z形方块 /// </summary> public class Block_Z : Block { public Block_Z(int x, int y) : base(x, y) { poi 阅读全文
摘要:
写在前面:由于之前曾写过Winform版的俄罗斯方块程序,该版本采用的是GDI+绘图技术,原理就是通过计时器,根据逻辑判断不断重新绘制画板,使得游戏以动画的方式在不断进行。在学习了silverlight之后,发现利用同样的原理,很容易将Winform版移植过来,于是就有了该教程。该教程适用于对于C#有一定基础,并且有兴趣学习silverlight的新手朋友们。在这一教程中,我会通过大量代码和示例图来演示,相信只要您跟着教程一步一步去做,就一定能创造出俄罗斯方块这个经典的游戏。本程序部分逻辑及思路参考自网络,如果有对您的权益造成侵害请及时与我联系,我会加以注明或者立即删除该文章。 最终效果图如. 阅读全文
摘要:
在经典俄罗斯方块游戏中,方块只有“I”,“L”,反“L”,“Z”,反“Z”,“T”,“正方形”这些形状,在游戏中这些方块都可以看做是由4个小方块组成,也就是上一节中提到的Rect,并且都可以旋转变形,所以在创建这些方块类之前,我们不妨先创建一个基类Block.cs。右键单击项目,选择“添加->类”,新建一个Block.cs。定义2个受保护变量,供子类继承。 protected Point[] point; protected Color c;point用来存储小方块坐标,c存储方块颜色。然后定义3个属性: /// <summary> /// 方块颜色 /// </sum 阅读全文