声明:这篇文章主要是参考几个别人的博文及源代码学习。参考文章:

1)http://blog.csdn.net/qian_f/article/details/19758671

2)http://yacare.iteye.com/blog/1949398

砖块类型:

如何实现俄罗斯方块游戏?首先我们需要确定有些中的初始化有多少种方块,每种方块是可以如何变形?一共包含以下七种图形、变形情况如下:

方块一:    变形1       变形2          变形3           变形4  

        + +       + +        + +        + +
+ + + + + + + +

方块二:

     - - - - -          - - - - -          - - - - -          - - + - -
- - - - - - - + - - - - - - - - - + - -
- + + + + - - + - - + + + + - - - + - -
- - - - - - - + - - - - - - - - - + - -
- - - - - - - + - - - - - - - - - - - -

方块三:

      - + -         - + -         - - -          - + -
+ + + - + + + + + + + -
- - - - + - - + - - + -

方块四:

      - - -         - + -         + + -        - - +
+ + - + + - - + + - + +
- + + + - - - - - - + -

方块五:

      - - -         + - -       - + +          - + -
- + + + + - + + - - + +
+ + - - + - - - - - - +

方块六:

      - - - - -            - - - - -             - - - - -             - - + - -
- - + - - - - - - - - - - - - - - + - -
- - + + + - - + + - + + + - - - + + - -
- - - - - - - + - - - - + - - - - - - -
- - - - - - - + - - - - - - - - - - - -

方块七:

      - - - - -          - - + - -            - - - - -            - - - - -
- - + - - - - + - - - - - - - - - - - -
+ + + - - - - + + - - - + + + - + + - -
- - - - - - - - - - - - + - - - - + - -
- - - - - - - - - - - - - - - - - + - -

游戏画布

根据自己的需求设定一定宽度、高度的一个画布,根据需要设定宽多少column,高多少row,除了对画布划分网格外,还需要对每个网格设定其颜色填充类型:1)七种图形的哪一种(-1--无任何填充因此无颜色,0:填充砖块1类型,1:填充砖块2类型;。。。6:填充砖块7类型,备注:每种栅格对应有自己唯一的渲染颜色,因此记录栅格就可以找到其对应的填充颜色值);

2)是否填充(0--无填充;1--填充)

因此,定义画布的网格需要使用一个三维数组表示:int [,,]

第一个元素代表:第多少个column,从0开始;

第二个元素代表:第多少个row,从0开始;

第三个元素代表:某个网格的颜色填充类型。

画布事件:

上、下(快速实现下滑)、左、右

方块具有的属性方法:

颜色、中心点、相对中心点、砖块类型唯一标识、变型序列、必要的行、必要的列、变形范围;

是否可以向左、是否可以向右、是否可以向下、是否可以变形、变形。

2D效果图:

3D效果图:

去掉网格后的效果貌似更好点:

代码下载:链接:http://pan.baidu.com/s/1mhTnj64 密码:c2rl

最新文章

  1. bash的管道符与重定向
  2. String、StringBuffer与StringBuilder之间区别
  3. jquery Datatables 行数据删除、行上升、行下降功能演示
  4. Web应用数据库配置参数读取方法之一
  5. [大牛翻译系列]Hadoop(11)MapReduce 性能调优:诊断一般性能瓶颈
  6. matlab中读取txt数据文件(txt文本文档)
  7. vs2010 dll生成,使用问题[good]
  8. laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的问题
  9. Android SDK 2.2 离线安装
  10. Oracle如何还原数据库
  11. 设计模式的征途—10.装饰(Decorator)模式
  12. 我的Windows日常——Excel 打开.xls .xlsx 文件格式或文件扩展名无效
  13. js事件、事件流以及target、currentTarget、this那些事
  14. 最难解的耦合 — James
  15. JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册
  16. CSS快速入门-基本选择器
  17. ASP.NET MVC —— Model之一模型模板
  18. SpringMVC常用方法大全
  19. js重名的处理
  20. BZOJ1259:[CQOI2007]矩形rect(DFS)

热门文章

  1. MYSQL汇总
  2. 使用了旧版nuget的.net项目在git中的问题
  3. ASP.NET MVC编程——错误处理与日记
  4. Webpack结合ES6
  5. c# 基于FTP协议的简易软件自动升级程序
  6. 关于yaml语言
  7. 十分钟释疑Oracle中“小表超慢”之谜(SQL调优/SQL优化)
  8. Leetcode 2——Range Sum Query - Mutable(树状数组实现)
  9. JAVA入门——Generic/泛型
  10. alpha冲刺第二天