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

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

俄罗斯方块(2D、3D)的更多相关文章

  1. FushionCharts Free 的运用[2D/3D图表处理]

    由于先前在一些论坛中谈论到这个插件的运用,留了一些QQ联系方式,最近老是被一些程序员“骚扰”,说是请教一些关于FushionChart Free图表的处理技术,先前还是比较乐意接受的,但发现后来一些完 ...

  2. CSS自学笔记(13):CSS3 2D/3D转换

    CSS3中新增了对元素进行2D和3D的转换效果,这样可以是开发人员很方便的做出视觉效果更好的网页来. 通过CSS3中属性的定义,我们可以对元素进行移动.缩放.拉伸.旋转等等,可以通过定义transfo ...

  3. 基于 HTML5 Canvas 的简易 2D 3D 编辑器

    不管在任何领域,只要能让非程序员能通过拖拽来实现 2D 和 3D 的设计图就是很牛的,今天我们不需要 3dMaxs 等设计软件,直接用 HT 就能自己写出一个 2D 3D 编辑器,实现这个功能我觉得成 ...

  4. 分享数百个 HT 工业互联网 2D 3D 可视化应用案例

    过去的 2018 年,我们认为是国内工业互联网可视化的元年,图扑软件作为在工业可视化领域的重度参与者,一线见证了众多 HTML5/Web 化.2D/3D 化的项目在工业界应用落地,我们觉得有必要在此分 ...

  5. Asphyre Sphinx is a cross-platform framework for developing 2D/3D video games and interactive business applications

    Introduction Introduction Asphyre Sphinx is a cross-platform framework for developing 2D/3D video ga ...

  6. DirectUI 2D/3D 界面库集合 分析之总结

    DirectUI优点在于能够非常方便的构建高效,绚丽的,非常易于扩展的界面.作者是Bjarke Viksoe, 他的这个界面程序思想和代码都很优秀,他的代码主要表述了他的思想,尽管bug比較多,可是很 ...

  7. paper 157:文章解读--How far are we from solving the 2D & 3D Face Alignment problem?-(and a dataset of 230,000 3D facial landmarks)

    文章:How far are we from solving the 2D & 3D Face Alignment problem?-(and a dataset of 230,000 3D ...

  8. 分享数百个 HT 工业互联网 2D 3D 可视化应用案例之 2019 篇

    继<分享数百个 HT 工业互联网 2D 3D 可视化应用案例>2018 篇,图扑软件定义 2018 为国内工业互联网可视化的元年后,2019 年里我们与各行业客户进行了更深度合作,拓展了H ...

  9. 数百个 HT 工业互联网 2D 3D 可视化应用案例分享 - 2019 篇

    继<分享数百个 HT 工业互联网 2D 3D 可视化应用案例>2018 篇,图扑软件定义 2018 为国内工业互联网可视化的元年后,2019 年里我们与各行业客户进行了更深度合作,拓展了H ...

  10. 2019-分享数百个 HT 工业互联网 2D 3D 可视化应用案例分享

    继<分享数百个 HT 工业互联网 2D 3D 可视化应用案例>2018 篇,图扑软件定义 2018 为国内工业互联网可视化的元年后,2019 年里我们与各行业客户进行了更深度合作,拓展了H ...

随机推荐

  1. 自然语言处理中的自注意力机制(Self-attention Mechanism)

    自然语言处理中的自注意力机制(Self-attention Mechanism) 近年来,注意力(Attention)机制被广泛应用到基于深度学习的自然语言处理(NLP)各个任务中,之前我对早期注意力 ...

  2. C++实验1

  3. 笔记:Maven 生命周期与命令行详解

    Maven 拥有三套相互独立的生命周期,分别是 clean.default和site,clean 生命周期的目的是清理项目,default 生命周期的目的是构建项目,而site生命周期的目的是建立项目 ...

  4. 用js编解码base64

    以下是编码和解码的方法 function Base64() { // private property _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef ...

  5. Nginx+Tomcat 配置负载均衡集群

    一.Hello world 1.前期环境准备 准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章<一台机器同时启动多个tomcat>. nginx官网下载解压版n ...

  6. Algorithm --> Kruskal算法和Prim算法

    最小生成树之Kruskal算法和Prim算法 Kruskal多用于稀疏图,prim多用于稠密图. 根据图的深度优先遍历和广度优先遍历,可以用最少的边连接所有的顶点,而且不会形成回路.这种连接所有顶点并 ...

  7. Hibernate学习笔记三 多表

    一对多|多对一 表中的表达 实体中的表达 实体代码: package com.yyb.domain; import java.util.HashSet; import java.util.Set; p ...

  8. 04_Python的数据类型1数值和字符串_Python编程之路

    上一节我们通过一个helloworld程序学习python的一些简单操作,还有输入与输出 这节我们来讲Python的数据类型与变量的操作 Python的交互器 在讲这个之前,我要先讲一下python的 ...

  9. C语言第二次作业

    一.PTA实验作业 题目1:7-1 计算分段函数[2] 1.实验代码 double x,y; scanf("%lf",&x); if (x>=0) { y=sqrt( ...

  10. CocoaPods 基础知识--------安装 及 使用第三方库

    极客学院:http://www.jikexueyuan.com/course/2665_2.html?ss=1