c#经典俄罗斯方块 vs2012开发
来源:互联网 发布:js then方法 编辑:程序博客网 时间:2024/06/09 05:35
http://www.cnblogs.com/Impulse/p/4923102.html
把网上两个开源的俄罗斯方块,整合到一起了,开发环境vs2012+.net 4.0,有问题、建议可以加群沟通哦
复古的 c#写的一个俄罗斯方块小游戏,友好的人机交互,具体功能如下:1.游戏分七个关卡,通关后还有通关加分。2.有卡通背景图。3.有背景音乐和音效。4.有得分排行榜。5.能手动更换游戏背景图和背景音乐6.能自定义游戏控制键。贴出一段核心代码,如何消行的,本个俄罗斯方块的核心就是 对于 &|>>^4种位运算符的运用,也是我整合这两个俄罗斯方块 的亮点,欢迎大家提出改进意见
1 /// <summary> 2 /// 查找已被填满的行 3 /// </summary> 4 /// <returns></returns> 5 public List<int> FindFullLines() 6 { 7 8 //清空原暂存表 9 fullLines.Clear();10 keepLines.Clear();11 List<Position> reDrawPosList = new List<Position>();12 //从最底行开始检查是否有消除行13 for (int y = this.YBlocks - 1; y >= 0 && arrBitBlock[y] != bitEmpty; )14 {15 if (arrBitBlock[y] == bitFull)16 {17 for (int x = 0; x < xBlocks; x++) //消除该行的block18 ArrayBlock[x, y] = null;19 SquareBlock[] arr = null;20 //将该行之上的block下移,如果到顶则不执行21 for (int i = y; i - 1 >= 0; i--)22 {23 //记录最高的 图形24 arr = new SquareBlock[10];25 for (int x = 0; x < xBlocks; x++)26 {27 28 if ((arrBitBlock[i - 1] & (1 << x)) != 0) //如果上方有block29 30 {31 this.ArrayBlock[x, i] = this.ArrayBlock[x, i - 1] == null ? null : this.ArrayBlock[x, i - 1].Clone() as SquareBlock; 32 33 ArrayBlock[x, i - 1] = null;34 reDrawPosList.Add(new Position(x, i));35 36 //ArrayBlock[x, i] = ArrayBlock[x, i - 1].Clone() as SquareBlock;37 }38 }39 arrBitBlock[i] = arrBitBlock[i - 1];//转移监控位40 }41 42 destroyLines++;43 fullLines.Add(y - fullLines.Count());44 45 46 }47 else48 {49 keepLines.Add(y - fullLines.Count());50 y--;//当消除一行后指针不下移,当没有消除的时候指针才下移51 52 }53 MinY = y - fullLines.Count();54 }55 return fullLines;56 }
参考: http://download.csdn.net/detail/free722/1883329
参考:http://www.cnblogs.com/tuyile006/archive/2007/05/16/748256.html
微软BI技术交流群:316744959 PHP技术交流群:337619433 NET技术QQ群号:21386099 有问题的可以在群里面提问
阅读全文
0 0
- c#经典俄罗斯方块 vs2012开发
- 经典俄罗斯方块游戏,vb开发
- 纯C语言开发经典游戏--俄罗斯方块
- vs2012 俄罗斯方块游戏
- C#俄罗斯方块
- C#开发经典书籍
- 与你一起探讨游戏开发,之C#详述俄罗斯方块。
- c#俄罗斯方块源代码
- 又一个c#俄罗斯方块
- C#版俄罗斯方块
- C#制作俄罗斯方块
- 俄罗斯方块c#版
- c#俄罗斯方块程序
- C#俄罗斯方块游戏
- C# 俄罗斯方块的实现
- c# 小游戏 俄罗斯方块
- C#实现俄罗斯方块
- C#中的俄罗斯方块
- Java中集合
- 三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别
- ES6语法(11)
- Python之向日志输出中添加上下文信息
- 《分布式服务框架原理与实践》读书笔记之第三章 通信框架
- c#经典俄罗斯方块 vs2012开发
- C#中的Invoke()
- ps命令详解
- 冒泡选择排序 二维数组 虚方法 隐藏方法 枚举 类 结构体 构造方法
- KendoUI系列:MultiSelect 多选 智能下拉
- 析构 匿名 密封 多态
- 抽象 静态 单例
- 关于应用内存数据回收后,重新启动
- 接口与泛型