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[][][] = { 游戏地图 游戏地图是用来存储游戏容器上的固定砖块的。游戏容器为一个宽为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} 源代码和可执行代码 总共为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 <j2me in a nutshell> <java 手机/PDA 程序设计入门> |
闂傚倸鍊峰ù鍥Υ閳ь剟鏌涚€n偅宕岄柡宀€鍠栭、娑樷堪閸愮偓姣夋俊鐐€戦崕鏌ュ垂閸ф钃熼柣鏃囥€€閸嬫挸鈽夊▍顓т簼閹便劑宕惰閺€鑺ャ亜閺囩偞顥為悗姘炬嫹闂傚倸鍊风粈渚€骞栭銈嗗仏妞ゆ劧绠戠壕鍧楁煕閹邦垼鍤嬮柤鏉挎健閺屾稑鈽夊▎鎰▏缂傚倷璁查弲鐘诲蓟閻旂⒈鏁嶆繝濠傚枤閺嗩厼顪冮妶鍐ㄥ姷闁瑰嚖鎷�>>
正在阅读:一个MIDP俄罗斯方块游戏的设计和实现一个MIDP俄罗斯方块游戏的设计和实现
2005-04-20 15:31
出处:
责任编辑:xietaoming
键盘也能翻页,试试“← →”键