站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2ME 专题一个MIDP俄罗斯方块游戏的设计和实现 -3-汉土网络

一个MIDP俄罗斯方块游戏的设计和实现 -3-汉土网络

摘要: 一个MIDP俄罗斯方块游戏的设计和实现 -3-汉土网络
<tr> <td> <tr> <td colspan="3">IT技术资料馆|编程语言|java系列|J2ME资料|一个MIDP俄罗斯方块游戏的设计和实现 -3</td> </tr> <tr> <td height="38" colspan="3" align="center">

一个MIDP俄罗斯方块游戏的设计和实现 -3

</td> </tr> <tr> <td colspan="3" align="center"></td> </tr> <tr> <td colspan="3" class="text">

3. 数据结构

  本游戏涉及到以下几种数据结构。

游戏区域

  游戏区域为手机或者PDA屏幕的一部分,该区域为正方形,边长一定能被16整除(因为俄罗斯游戏区域刚好为16个小砖块长,16个小砖块宽的方形)。无论在水平方向还是垂直方向,该区域都要处于屏幕的居中位置。游戏区域在水平方向上分为2部分,一部分为12个小砖块宽,用来显示游戏容器,另一部分为4个小砖块宽,用来显示下一个下坠物和分数。

小砖块

  小砖块是下坠物和游戏容器的组成部分。表现为一个正方形,边长为游戏区域边长的1/16。每个小砖块在绘制的时候,4边会留出1个象素宽,绘制成白色或者灰色,这样砖块之间才有间隙。每种小砖块也有id,分别为1到8。我们可以用一个颜色数组(程序里叫BRICK_COLORS)存储这8种颜色。若某种小砖块的id为3,那么该小砖的颜色为BRICK_COLORS[3-1].

下坠物

  下坠物本质上为16个小砖块组成的正方形。下坠物一共有7种,比如有"田"字形的,"L"字形的等等。每种下坠物一共有4种旋转变化。 每种下坠物都有一个id,分别为1到7。因为对于一种下坠物来说,其颜色是固定的。我们同样可以用该种颜色在BRICK_COLORS数组中的下标值加上1,作为下坠物的id.

  例如"L"形下坠物的id为3,其变化形式为:

 那么用什么数据结构存储一个下坠物呢,我们以"L"形的下坠物为例子来说明:

  因为每一个下坠物有四种状态,所以我们可以考虑用一个长度为4的数组来存贮一个下坠物的4种状态,数组中每一个元素表示该下坠物的一种状态。那么用什么东西来表示某个下坠物的某种状态呢,从上图可以看出,用一个4X4的二维数组来存储一种下坠物的一种状态最合适不过了。在有色砖块出现的位置,值为1,而只有背景颜色,无需绘制的位置,值为0。因此,整个"L"形下坠物的4种状态可以用一个3维数组来表示:

protected int blockpattern3[][][] = {
{{0, 1, 0, 0}, {0, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 0, 0}},
{{0, 0, 0, 0}, {0, 1, 1, 1}, {0, 1, 0, 0}, {0, 0, 0, 0}},
{{0, 0, 0, 0}, {0, 1, 1, 0}, {0, 0, 1, 0}, {0, 0, 1, 0}},
{{0, 0, 0, 0}, {0, 0, 1, 0}, {1, 1, 1, 0}, {0, 0, 0, 0}}
};

游戏地图

  游戏地图是用来存储游戏容器上的固定砖块的。游戏容器为一个宽为12个小砖块单位,高为16个小砖块单位,包括左右2堵墙和下边的容器底在内。所以用一个16X12的二维数组(程序里叫mapdata)来存储固定砖块。如果mapdata[i][j]=k(k!=0).那么就表示游戏容器的i行j列上有个固定的小砖块,小砖块的颜色值为BRICK_COLORS[k-1].如果k=0则表示i行j列无砖块。

  因此对于以下这种游戏运行时刻,mapdata的值为{{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}
{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}{}{8,0,0,0,0,0,0,0,0,0,0,8}{8,0,0,0,0,0,0,0,0,0,0,8}
{8,0,0,0,0,0,0,0,0,1,1,8}{8,0,0,0,0,0,0,0,0,1,1,8}{8,0,0,0,0,0,7,7,5,1,1,8}{8,0,5,0,0,7,2,5,5,1,1,8}
{8,8,8,8,8,8,8,8,8,8,8,8}}

源代码和可执行代码

  总共为3个文件:src.rar, ketrisgame.jad, ketrisgame.jar 说明:src.rar中有全部的源代码。ketrisgame.jar中还有程序运行所需要的资源文件.安装wtk2.1后,让ketrisgame.jad和ketrisgame.jar处于同一目录下(目录路径中不能含有中文和空格 切记),双击ketrisgame.jad文件,即可在模拟器里运行游戏。

参考资料

http://www.javadrive.jp/j2me/game/3/index.html




</td> </tr> <tr>
↑返回目录
前一篇: 一个MIDP俄罗斯方块游戏的设计和实现 -2-汉土网络
后一篇: 精通J2ME中的Hello World-汉土网络