这个小游戏完全采用J2ME的WTK2.1平台开发,功能仿俄罗斯方块游戏。(由于是第一次写手机游戏,有些地方处理的不是很好,大家见谅)
现有功能列表:
1. 下一方块提示;
2. 消行计分;
3. 下降加速;
4. 中途暂停/继续;
5. 级别(共分5级)不同,速度/计分不同。
* 难度级别,级别从1级 - 5级
*
* 级别与游戏速度的对应关系
* 级别 速度
* Level1 方块/2
* Level2 方块
* Level3 方块*1.5
* Level4 方块*2
* Level5 方块*2.5
*
* 级别与得分的对应关系
* 级别 得分
* Level-1 0-3000
* Level-2 3000-8000
* Level-3 8000-16000
* Level-4 16000-40000
* Level-5 >40000
*
* 级别与消行得分的对应关系
* Level1 100
* Level2 200
* Level3 500
* Level4 1000
* Level5 2000
由于这个小游戏写得比较早,在索爱T628上测试过,运行效果还不错,坐车时可以打发些无聊的时间。
[color=green]下面是当时写这个小游戏的一些构思[/color][size=medium],[color=blue]具体的源代码在附件的zip包中,感兴趣的朋友可以看看[/color][/size].
/**
* 主程序.
* @author Stephen
* @version v0.9.0
* <pre>
* 基本设计思路:
*
* 把整个可操作的显示屏幕看作1个矩阵(matrix),矩阵采用1个整型二维数组来表示。
* 矩阵是由若干个方格组成,矩阵的最小组成单位是方格(grid),方格是1个正方形。
* 二维数组中每个元素的值只有两种选择:1或者0。
*
* 方格填充的内容有2种:填充1个方块(box)或者空白。方格的填充规则:必须根据方
* 块在对应的二维数组中的值进行填充。如果对应的值为1,则填充1个方块;如果对应的
* 值为0,则空白。
*
* 名词定义:方块显示矩阵(displayMatrix)。说明:方块显示矩阵是用于输出到屏幕完成
* 显示的矩阵。在往屏幕上绘画的主要依据就是方块显示矩阵。
* displayMatrix矩阵中坐标和长度的关系:
* 假设矩阵的宽度=6,高度=4,每个矩阵方格的边长a=10,则:
* 矩阵的坐标为:
* [0][0],[0][1],[0][2],[0][3],[0][4],[0][5]
* [1][0],[1][1],[1][2],[1][3],[1][4],[1][5]
* [2][0],[2][1],[2][2],[2][3],[2][4],[2][5]
* [3][0],[3][1],[3][2],[3][3],[3][4],[3][5]
* 如果在矩阵内有个方块,方块左上角相对于矩阵左上角的长度为:水平方向x=25,垂直方向y=30,则:
* 对应的矩阵坐标计算方法:
* 水平坐标= x%a>0?x/a:x/a-1 =3
* 垂直坐标= y%a>0?y/a:y/a-1 =2
* 因此对应的矩阵坐标=[y][x] = [2][3]
*
*
* 名词定义:方块(box)。说明:方块是用于往矩阵方格填充的东西。这里所谓的填充:就是
* 往方格内画方块。方块是1个正方形。
*
* 方块显示矩阵内的方块都是静态的,而在方块成为静态之前都是可活动的,称为
* 活动方块组(activeBox)。
*
* 方块活动矩阵内的活动方块组的类型有以下5种:(每个活动方块组实际上都是由4个方块组成的)
* 在实际编码中,采用矩阵(二维数组)来表示活动方块组。
* <1>int[][]{{1,1},{1,1}}
* 00
* 00
* 俗称"田字形"。
* 它没有变形。
* <2>int[][]{{1,0},{1,0},{1,0},{1,0}} 说明:因为必须是1个二维数组,所以在后面补0
* 0
* 0
* 0
* 0
* 俗称"一字形"。它的变形有1种:
* 0000
*
* <3>int[][]{{0,1},{1,1},{1,0}}
* 0
* 00
* 0
*
* 它的变形有1种:
* 00
* 00
*
* <4>int[][]{{0,1},{0,1},{1,1}}
* 0
* 0
* 00
*
* 它的变形有3种:
* 00 000
* 0 0 0
* 000 0
* <5>int[][]{{0,1},{1,1},{0,1}}
* 0
* 00
* 0
*
* 它的变形有3种:
* 0 000
* 0 00 0
* 000 0
*
*
* 屏幕内活动方块组的活动有2种类型:变形(change)和移动(move)。
*
* 方块组的移动可以分为:自由移动和手工移动。自由移动是指不需要人为干预的活动;手工移动是
* 指必须通过人为干预才能完成的活动。
*
* 方块组的移动中的自由移动有:
* <1>垂直向下移动(moveDown):采用Timer、TimerTask定时执行,每次执行后方块垂直向下
* 移动1个方格的5分之一的长度(方格是矩阵的最小单位)。
*
* 方块组的移动中的手工移动有:
* <1>水平向左移动(moveLeft)
* <2>水平向右移动(moveRight)
* <3>垂直向下快速移动(moveDownFast)
*
* 方块组的变形活动必须通过手工来完成。即必须通过手工按键完成活动方块的变形操作。所谓的变形
* 是指将活动方块组每次按顺时针方向旋转90度。
*
* </pre>
*/
附录:附件中的压缩包包含2个文件:
(1) ElsBox.java - 源代码
(2) ElsBox.jar - ElsBox.java生成的jar包,可以直接传到手机(支持java的手机)上运行。
-------------------------------------------------------------
分享知识 分享快乐, 希望文章能给需要的朋友带来小小的帮助。
另外,欢迎朋友转载,转载时请注明出处,谢谢!