Android俄罗斯方块附源码
思路:
•首先要画出游戏背景墙;
•其次,要有方块,以及方块单元;
•方块的不同形状,颜随机产生;
•游戏的控制面板。
可能会出现的问题或者难点:
•边界问题: ①处于边界的时候,方块不可以再左右移动; ②下降的时候,到达边界即底部,则不可继续下落,此时应该产生一个新的方块;
•与其它方块接触问题: ①下落的时候,如果碰到其它的方块则停止下落; ②左右移动的时候,移动的过程中,如果接触到其他方快,则不可再继续左右移动;
•方块的消除: ①调用方块消除方法的时间:当方块下落到底部的时候,判断是否有需要消除的行; ②消除其中一行之后,应该把这一行上面的全部方块下移一行;
•方块的旋转: 在当前项目中,我采用的是顺时针旋转。 ①当旋转的时候,如果出现方块部分超出了边界,应该对方块进行平移,使其回到边界以内。(曾在网上看到有人做过,判断旋转之后是否会超出边界,如果会超出,则不进行旋转,我觉得不好,方块只要没有下落到底部,我觉得都可以进行旋转,除了没有空间让其旋转外); ②如果空间不足以旋转,也不可以旋转。空间不足以旋转的意思是:比如横向方向只有两个的空间,而方块旋转后会占用三个空间,此时也不可进行旋转; ③当无法继续下落或者下落到了底部也不可再进行旋转
•控制面板: ①游戏开始、暂停、继续、结束,这些状态应该怎么去控制,以及游戏与控制台的事件关联。
•未发现的问题: 因为本人能力,只做到这么多,如果有人发现问题,可以留言交流,欢迎挑问题。
游戏的运行界面如下所示,基本的功能以及操作很简单。
这里写图片描述
下面直接看项目代码 项目文件结构
这里写图片描述
下面分别介绍每个类的功能
•TetrisViewAW.java游戏的主界面,背景墙以及方块都在此TetrisViewAW.Java里面,就是一个自定义的View ,(默认大家对于自定义View是熟悉的),在改类里面,有一个游戏主线程,用于控制游戏的开始,暂停,继续,停止,以及方块下落的速率。代码我加了很多注释,看不懂的可以留言。还有一点需要注意,当停止游戏时,要释放线程,养成好习惯
•BlockUnit.java方块的单元块,大家都玩过俄罗斯方块,每一个方块由四个单元块组成。单元快应该有以下属性:①大小:单元块的大小决定了主界面的容量(容纳单元块的数量);②颜:每个单元块都有一个颜,美化游戏界面(可无);③坐标:包括X轴坐标、Y轴坐标,在绘制方块的时候,以单元块的坐标为起点绘制,即:单元块的坐标值应该为单元块在界面上的左上角的坐标。
•此类的主要功能有:方块的下落,左右移动,判断是否可以旋转等功能都在此类中,算是核心类。
•TetrisBlock.java用于产生不同形状的方块,共有其中类型。
简单的java游戏代码•NextBlockView.java其实就是游戏主界面的一个缩减版,用于显示下一个要出现的方块的,玩家可以明确的知道下一个方块的形状和颜。
•GameConfig.java用于配置方块的下落速度
public class GameConfig { /**方块下落的速度*/ public static final int SPEED = 300; }
•TetrisActivityAW.java主界面,包括游戏主界面和控制台,很简单,直接贴代码。
•TetrisActivityAW activity的xml文件
整个项目就是这些,代码已经全部贴出来了。 整个项目写的时候,以为很简单,但是却遇到了很多问题,不过都已解决。欢迎来bug,大家共同进步。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论