admin 管理员组

文章数量: 1086019


2024年3月1日发(作者:ldapsearch 渗透)

Android俄罗斯方块附源码

思路:

首先要画出游戏背景墙;

其次,要有方块,以及方块单元;

方块的不同形状,颜色随机产生;

游戏的控制面板。

可能会出现的问题或者难点:

边界问题: ①处于边界的时候,方块不可以再左右移动; ②下降的时候,到达边界即底部,则不可继续下落,此时应该产生一个新的方块;

与其它方块接触问题: ①下落的时候,如果碰到其它的方块则停止下落; ②左右移动的时候,移动的过程中,如果接触到其他方快,则不可再继续左右移动;

方块的消除: ①调用方块消除方法的时间:当方块下落到底部的时候,判断是否有需要消除的行; ②消除其中一行之后,应该把这一行上面的全部方块下移一行;

方块的旋转: 在当前项目中,我采用的是顺时针旋转。 ①当旋转的时候,如果出现方块部分超出了边界,应该对方块进行平移,使其回到边界以内。(曾在网上看到有人做过,判断旋转之后是否会超出边界,如果会超出,则不进行旋转,我觉得不好,方块只要没有下落到底部,我觉得都可以进行旋转,除了没有空间让其旋转外); ②如果空间不足以旋转,也不可以旋转。空间不足以旋转的意思是:比如横向方向只有两个的空间,而方块旋转后会占用三个空间,此时也不可进行旋转; ③当无法继续下落或者下落到了底部也不可再进行旋转

控制面板: ①游戏开始、暂停、继续、结束,这些状态应该怎么去控制,以及游戏与控制台的事件关联。

未发现的问题: 因为本人能力,只做到这么多,如果有人发现问题,可以留言交流,欢迎挑问题。

游戏的运行界面如下所示,基本的功能以及操作很简单。

这里写图片描述

下面直接看项目代码 项目文件结构

这里写图片描述

下面分别介绍每个类的功能

游戏的主界面,背景墙以及方块都在此里面,就是一个自定义的View ,(默认大家对于自定义View是熟悉的),在改类里面,有一个游戏主线程,用于控制游戏的开始,暂停,继续,停止,以及方块下落的速率。代码我加了很多注释,看不懂的可以留言。还有一点需要注意,当停止游戏时,要释放线程,养成好习惯

• 方块的单元块,大家都玩过俄罗斯方块,每一个方块由四个单元块组成。单元快应该有以下属性:①大小:单元块的大小决定了主界面的容量(容纳单元块的数量);②颜色:每个单元块都有一个颜色,美化游戏界面(可无);③坐标:包括X轴坐标、Y轴坐标,在绘制方块的时候,以单元块的坐标为起点绘制,即:单元块的坐标值应该为单元块在界面上的左上角的坐标。

• 此类的主要功能有:方块的下落,左右移动,判断是否可以旋转等功能都在此类中,算是核心类。

• 用于产生不同形状的方块,共有其中类型。

• 其实就是游戏主界面的一个缩减版,用于显示下一个要出现的方块的,玩家可以明确的知道下一个方块的形状和颜色。

• 用于配置方块的下落速度

public class GameConfig { /**方块下落的速度*/ public static final int SPEED = 300; }

主界面,包括游戏主界面和控制台,很简单,直接贴代码。

TetrisActivityAW activity的xml文件

整个项目就是这些,代码已经全部贴出来了。 整个项目写的时候,以为很简单,但是却遇到了很多问题,不过都已解决。欢迎来找bug,大家共同进步。


本文标签: 方块 旋转 游戏 下落 单元