《毕业论文基于android俄罗斯方块的开发和设计.doc》由会员分享,可在线阅读,更多相关《毕业论文基于android俄罗斯方块的开发和设计.doc(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、天津市大学软件学院软件工程专业2013届本科生毕业论文天津市大学软件学院毕业论文 基于android俄罗斯方块的开发和设计姓 名 李 斌 专 业 软件工程 学 号 1150310607 学 籍 校 天津师范大学 学校指导教师 王晓晔 职 称 副教授 企业指导教师 唐泰彬 职 称 工程师 2013 年 6 月摘 要3G时代已经慢慢的融入了我们的日常生活,随着国家的通信政策以及各大运营商的宣传的影响,3G手机已经随处可见,面对全球信息、技术空前高速发展,信息高速化发展更是社会进步的一个标志。在全球信息化的今天,手机已经成为人们日常生活中不可缺少的一部分,尤其是在电子产品日新月异的今天,我们在平时随
2、处可见的电子产品中,手机无疑是一个最大的用户集,而各大厂商智能手机则依旧是电子市场的一颗耀眼的明星。其中的代表作有诺Nokia的塞班系统,摩托罗拉的Linux系统,但是其中异军突起的仍然是Google的Andriod系统以其开放的源代码和方便简洁的操作必然是未来智能手机领域的领头羊。这次毕业设计我们选择基于Andriod的手机游戏一定会使我们在以后的工作中提供更多的机会。随着新技术的不断开发与应用,近年来Java技术发展十分迅速,一个以Java应用为主的新技术革命浪潮正在蓬勃兴起。而基于Andriod的软件开发是一个前景很大的技术,通过这次毕业设计,能使我们从对软件的设计中体会到实际中软件开发
3、的过程,提高我们的专业能力,最终能够获得很强的专业知识。Android是运用java编程语言编写的应用程序。然而,Java编程语言不仅仅用于编写Web上娇小可爱的娱乐性小应用程序。通用的、高级Java编程语言也是一个功能强大的软件平台。使用丰富的API,你可以写多种程序。因此,Android也具有java语言的特点。如果你已经学习过java,你或许已经熟悉了java编程语言特点, 那么对于Android编程就会更容易掌握。关键词:Android手机游戏,Android平台,Java技术,游戏设计。 Abstract3G era has gradually integrated into our
4、 daily life, with the countrys communication policy as well as the major carriers of sensitization to the effects of3G mobile phone, can be seen everywhere, in the face of the global information technology, an unprecedented rapid development, the information high speed development is a symbol of soc
5、ial advancement. In the global information technology today, mobile phone has become indispensable in the daily life of a part, especially in electronic products change rapidly today, we usually can be seen everywhere in the electronic products, mobile phone is undoubtedly one of the largest user se
6、ts, and major manufacturers of intelligent mobile phone will still be electronic market a dazzling star. The representative of Connaught Nokia Symbian, the Motorola Linux system, but which is still a new force suddenly rises. Google Andriod system for its open source code and convenient and simple o
7、peration is the future leader in the field of intelligent mobile phone. This time graduate the design we choose based on the Andriod mobile phone games will make our work in the future to provide more opportunities.With the new technology development and application, in recent years the development
8、of Java technology is very rapid, a Java application of tide of new technology revolution is booming. Andriod based software development is a great prospect of technology, through this graduation design, can make us from on the software design of the actual software development process, improve our
9、professional skills, can finally obtain strong professional knowledge.Key words: Android mobile phone games; the Android platform; Java technology;game design 前 言随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样的业务。因此,智能手机的应用软件及其需要的服务将有广阔的发
10、展前景。在如今这个智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,Android平台具有无限的吸引力。游戏是人们活动中一项非常重要的内容,有人认为如果哪一天人类对所有的游戏
11、都失去兴趣,恐怕世界的末日就要到了。电脑对游戏的贡献有目共睹,现在摸过电脑的人很少有没玩过电脑游戏的,喜欢游戏的人也很少有不玩电脑的。俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏最初是由苏联的游戏制作人Alex Pajitnov制作的,它看似简单但却变化无穷,令人上瘾。俄罗斯方块最早还是出现在PC机上,而我国的用户都是通过红白机了解、喜欢上它的。现在联众又将重新掀起这股让人沉迷的俄罗斯方块风潮。对一般用户来说,它的规则简单,容易上手,且游戏过程变化无穷,而在联众俄罗斯方块中,更有一些联众网络游戏所独有的魅力有单机作战
12、与两人在线对战两种模式,用户可任选一种进行游戏。网络模式还增加了积分制,使用户既能感受到游戏中的乐趣,也给用户提供了一个展现自己高超技艺的场所,那手机上有事什么样呢?俄罗斯方块游戏可以说是随计算机的发展而发展,并不断推陈出新演变出各种类似游戏, 深受广大玩家喜爱。这个游戏有的简单, 有的复杂, 但其根本原理是一样的都是对运动的方块进行组合, 来训练玩家的反应能力。大多数人都认为一般游戏软件都具有很高的技术难度, 随着开发工具及软件开发方法学的不断发展, 至今的在Android手机上的游戏也是。本文就在分析讨论Android手机软件开发技术原理的基础上,开发出能为用户提供更好的基于Android
13、平台的3G手机游戏俄罗斯方块儿的设计和开发。25目 录第一章绪 论6第二章需求分析72.1需求概括72.2目标72.3用户类型和特征72.4运行环境72.5环境搭建7第三章开发概述123.1背景概述123.2游戏简介123.3游戏设计流程143.4游戏操作方法15第四章游戏策划及准备工作194.1游戏策划194.2游戏设计194.3呈现技术194.4目标平台194.5操作方式194.6游戏开发平台19第五章游戏构架215.1游戏模块构成图215.2游戏概要设计图225.3各个功能模块图设计23第六章游戏中各个类中实现的功能26第七章结 论33参考文献34致 谢35第一章 绪 论2007年,Go
14、ogle公司推出了Android手机操作系统,该系统是基于Linux平台的开源手机操作系统,并且该系统已经成为了新3G时代的主流移动智能平台之一,根据调查,在中国基于Android操作系统的智能手机在中国智能手机总销量中所占的比例已经达到了52%,越来越多的手机用户在接触安卓手机。Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安智”。Android操作系统最初由Andy Runbin开发,最初主要支持手机。2005年由Google收购注资,并组建开发手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。An
15、droid的主要竞争对手是苹果手机的ios及RIM的BlackBerry OS。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。移动互联网,就是将移动通信和互联网二者结合起来,成为一体。在最近几年里,移动通信和互联网成为当今世界发展最快、市场潜力最大、前景最诱人的两大业务,它们的增长速度都是任何预测家未曾预料到的,所以移动互联网可以预见将会创造怎样的经济神话。伴随着移动互联网的快速发展,智能手机的快速普及,传统的制质地图已经不能满足现在市民的便利出行25
16、。运行在安卓系统平台的游戏,运行在安卓平台的游戏深受大家的喜爱。现在,Android游戏不但可以运行于智能手机,也可以运行在平板电脑上,俄罗斯方块(Tetris, 俄文:)是一款风靡全球的电视游戏机和掌上游戏机游戏,它由俄罗斯人阿列克谢帕基特诺夫发明,故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆宜,从而家喻户晓,风靡世界。因此,手机上玩这款游戏也是我们必须要做。第二章 需求分析2.1 需求概括完成游戏在手机上功能要求。2.2 目标该游戏简单容易上手,更有一定的益智性,可以锻炼你的记忆能力,也有一定的娱乐性,
17、其中不同游戏类型能让你感觉到这个游戏的多样性2.3 用户类型和特征用户主要是16岁至45岁的手机用户群,用户只需要操作手机界面就能够进行游戏的操作。2.4 运行环境2.4.1 硬件资源装载了Android系统的智能手机。2.4.2 软件资源操作系统: Windows XP或Windows 7。Android sdkJDK:jdk1.6。Eclipse2.5 环境搭建1.JDK安装如果你还没有JDK的话,可以去这里下载,接下来的工作就是安装提示一步一步走。设置环境变量步骤如下:我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量:2.JAVA_HOME值为: D:Program Files
18、Javajdk1.6.0_18(你安装JDK的目录)3.CLASSPATH值为:.;%JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;%JAVA_HOME%bin;4.th: 在开始追加 %JAVA_HOME%bin;5.NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入java version 查看JDK的版本信息。如图2-1所示:图2-1验证JDK安装是否成功2.Eclipse安装如果你还么有Eclipse的话,可以去这里下载,下载如图2-2所示的Eclip
19、se IDE for Java Developers(92M)的win 32bit版: 图2-2Eclipse下载解压之后即可使用。3.Android SDK安装在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的Force https:/.这项,再点击Available Packages 。选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Acce
20、pt All、Install Accepted,开始下载安装所选包在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:AndroidDevelopandroid-sdk-windowstools)。如图2-3所示:图2-3设置Android SDK的环境变量“确定”后,重新启动计算机。重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。运行 android h 如果有图2-4所示以下的输出,表明安装成功:图2-4验证Android SDK是否安装成功4.ADT安装打开 Eclipse IDE,进入菜单中的 Help - Install New Sof
21、tware点击Add.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入http:/dl-图2-5 add site框图确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们。 如图2-6所示:图2-6 install 框图然后就是按提示一步一步next。完成之后:选择Window Preferences.在左边的面板选择Android,然后在右侧点击Browse.并选中SDK路径,本机为:
22、D:AndroidDevelopandroid-sdk-windows点击Apply、OK。配置完成。5.创建AVD为使Android应用程序可以在模拟器上运行,必须创建AVD。1、在Eclipse中。选择Windows Android SDK and AVD Manager2、点击左侧面板的Virtual Devices,再右侧点击New3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值4、点击Create AVD即可完成创建AVD。118天津市大学软件学院软件工程专业2011届本科生第三章 开发概述3.1 背景概述俄罗斯方块是
23、一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏最初是由苏联的游戏制作人Alex Pajitnov 制作的,它看似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思饭不想的那个俄罗斯方块时代。究其历史,俄罗斯方块最早还是出现在PC机上,而我国的用户都是通过红白机了解、喜欢上它的。现在Android手机游戏的兴起又将重新掀起这股让人沉迷的俄罗斯方块风潮。对一般用户来说,它的规则简单,容易上手,且游戏过程变化无穷,而在Android俄罗斯方块中,更有一些Android游戏所独有的魅力更加方便简单的操作模式,用户可在任意的
24、地方任意时间进行游戏。23.2 游戏简介原本是前苏联科学家阿列克谢帕基特诺夫所开发的教育用软件,之后开始提供授权给各个游戏公司,造成各平台上软件大量发行的现象。Game Boy版的俄罗斯方块在日本卖出424万套,是Game Boy史上卖最好的游戏。海湾战争时,也是前线美军最常拿消磨时间的游戏之一。由于俄罗斯方块具有的数学性、动态性与知名度,也经常拿来作为游戏程序设计的练习题材。俄罗斯方块曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事,它看似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思饭不想的那个俄罗斯方块时代。俄罗斯方块上手极其简单,但是要熟练地掌握其中的操作与
25、摆放技巧,难度却不低。作为家喻户晓老少皆宜的大众游戏,其普及程度可以说是史上任何一款游戏都无法相比的。功能概述1、一个用于摆放小型正方形的平面虚拟场地,其标准大小:行宽为24,列高为25,以每个小正方形为单位。2、一组由4个小型正方形组成的规则图形,英文称为Tetromino,中文通称为方块共有7种,分别以S、Z、L、J、I、O、T这7个字母的形状来命名。I:一次最多消除四层J(左右):最多消除三层,或消除二层 L:最多消除三层,或消除二层 O:消除一至二层 S(左右):最多二层,容易造成孔洞Z (左右):最多二层,容易造成孔洞T:最多二层(1)部分游戏有单格方块,可以穿透固定的方块到达最下层
26、空位。其他的改版中出现更多特别的造型。方块会从区域上方开始缓慢继续落下。(2)玩家可以做的操作有:以90度为单位旋转方块,以格子为单位左右移动方块,让方块加速落下。(3)方块移到区域最下方或是着地到其他方块上无法移动时,就会固定在该处,而新的方块出现在区域上方开始落下。(4)当区域中某一列横向格子全部由方块填满,则该列会消失并成为玩家的得分。同时删除的列数越多,得分指数上升。(5)当固定的方块堆到区域最上方而无法消除层数时,则游戏结束。(6)一般来说,游戏还会提示下一个要落下的方块,熟练的玩家会计算到下一个方块,评估现在要如何进行。由于游戏能不断进行下去对商业用游戏不太理想,所以一般还会随着游
27、戏的进行而加速提高难度。3、通过设计者预先设置的随机发生器不断地输出单个方块到场地顶部,以一定的规则进行移动、旋转、下落和摆放,锁定并填充到场地中。每次摆放如果将场地的一行或多行完全填满,则组成这些行的所有小正方形将被消除,并且以此来换取一定的积分或者其他形式的奖励。而未被消除的方块会一直累积,并对后来的方块摆放造成各种影响。4、如果未被消除的方块堆放的高度超过场地所规定的最大高度(并不一定是20或者玩家所能见到的高度),则游戏结束。具体到每一款不同的游戏,其中的细节规则都可能有千差万别,但是以上的基本规则是相同的。3.3 游戏设计流程开始初始化界面初始化界面随机显示方块组下落是否停止方块匀速
28、下落能否出现下一个方块组合结束图3-1 游戏运行流程图l 游戏模块1. 命名模块完成有户名的注册。2. 储存模块完成游戏得存储和用户名的存储。由TileStore和ResourceStore来存储游戏进程等;数据库来存储用户名和积分数值。3. 功能模块(1)游戏控制模块;主要完成游戏的左、右、下的移动功能和上的变形功能;由TlieView和TetrisView类来实现代码功能:变形的功能和方法:完成游戏边界控制;(2).游戏显示模块;完成游戏界面的设计和布局;完成游戏中模块的形状判断和显示;(3).游戏速度模块;实现游戏关卡调整、设置游戏难度;(4).游戏积分模块;实现游戏玩家的积分;实现游戏
29、中消除行时的游戏积分;4.工具类模块;实现积分的计算和关卡的计算。3.4 游戏操作方法1、安装apk游戏安装包,在Android手机的资源管理其中找到并点击Elos.apk文件选择安装。2、点击游戏图标进入游戏界面后按键盘的MENU按钮,在弹出的菜单中选择“开始”来开始游戏(如图3-3所示)。图3-2 游戏用户界面图3-3 游戏功能界面 图3-4 游戏开始界面 图3-5 游戏结束界面图3-6 游戏玩家排行图3-7 游戏帮助3、游戏玩家可以再游戏中采用点击“返回键”按钮来选择“关卡”、“退出”、“开始”以实现暂停、退出、重新开始功能(如图3-3示)。4、键盘操作操作:系统缺省设置使用触摸屏,用手
30、指点击手机键盘左键一次左移一格(长按则快速移动到最左边);点击手机右键一次右移一格(长按则快速移动到最右边);点击手机向上按键方块本身旋转;点击手机向下的按键一次向下移一格(长按则快速移动到最下边)。5、计分牌显示的内容:“分数”为本局游戏所得的分数,一次消一行100分、2行300分、3行600分、4行1000分。(如图3-4中的得分和消除行)“关卡”为本局游戏所在的关卡,所在的关卡越高,难度越大。“时间”为本局游戏从开始到当前所用的时间。天津市大学软件学院软件工程专业2013届本科生第四章 游戏策划及准备工作4.1 游戏策划游戏的策划是指对游戏中主要功能的实现方案进行确定的过程,大型游戏需要
31、缜密的策划才可以开发。例如,呈现技术、目标平台等内容。4.2 游戏设计本游戏为经典俄罗斯方块游戏,每一次消除一层加100分、2层300分、3层600分、4层1000分。游戏中的方块形状都是随机生成的(共7种)。随着难度的增加方块下落的默认速度会增加,游戏分数没有上限。布局设计是一个22 x 12 的方格组成。不同的方块儿有不同的颜色,格子颜色是根据下落模块儿确定。有颜色是为1,无颜色是0。4.3 呈现技术本游戏采用的游戏背景和其他图片都是用美图秀秀软件编辑的。编程采用Android-sdk+java 技术。运用到了数据库的知识,MVC模式。4.4 目标平台本游戏的目标平台为Android1.5
32、。4.5 操作方式游戏的操作方式手机键盘操作,游戏菜单的弹出是通过键盘来操作的。4.6 游戏开发平台本次开发采用jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008开发包、eclipse-SDK-3.6.2-win32开发工具、android-sdk-windows开发包。JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java
33、的第一步。而专门行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。Eclipse(软件开发者包)是Eclipse Platform、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse项目生产的工具和来自其它开放源代码的第三方软件组合而成。Eclipse项目生产的软件以 GPL发布,第三方组件有各自自身的许可协议
34、。Android SDK(Google Android专属的软件开发工具包),它是编写Android应用程序的基石。78第五章 游戏构架5.1 游戏模块构成图前台表示模块主要用于游戏画面的渲染。其中包括游戏界面和管理面版两个模块,游戏界面主要为游戏中出现的界面,比如:开始界面和游戏中界面。管理面板包括开始、退出、暂停三部分,主要为玩家提供控制游戏行进和退出。(如图2)游戏积分计算用户积分计算俄罗斯方块工具模块游戏模块存储模块用户模块模块实体生成游戏界面界面管理游戏积分储存关卡数据储存图5-1 模块构成图图5-2 游戏开发架构图5.2 游戏概要设计图 本游戏的设计采用MVC模式(Model -V
35、iew -Controller),即把本游戏的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样本游戏的设计被分成三个层模型层、视图层、控制层。MVC模型图如下所示:图5-3 MVC模型图触发按键事件图形工厂类图形类障碍物类中央控制器处理按键事件处理逻辑显示面板显示生产图5-3 系统流程结构设计5.3 各个功能模块图设计图形工厂图形障碍物生产图形下落产生障碍物图5-5 模型层(Model)功能模块图设计游戏面板方块的显示障碍物的显示图5-6 视图层(View)功能模块图设计 中央控制器图形工厂生产图形显示面板显示图形和障碍物处理按键和鼠标事件图5-7 控制层
36、(Controller)功能模块图设计游戏实体模块主要用于后台游戏逻辑。本游戏中仅有方块实体模块一部分。方块实体模块主要负责对已落下、正在落下和即将落下的方块图案的颜色和形状进行控制,核对正在落下的方块图案的行进路线、形状变换进行控制。通过图形工厂类ShapeFactory的getShape(ShapeListener listener)方法随机产生方块的某种状态,这里运用了工厂设计模式,这种设计模式是为了实现高内聚低耦合而存在的,这种设计模式的通俗解释就是:你想要一个产品,你需要让工厂给你生产一个,你要告诉工厂你要生产什么产品,就把你需要生产的这个产品当做参数传给工厂类的生产产品的方法,然后
37、根据你传进来的产品,而决定工厂人生产什么产品,产生出来产品后,最后要返回您要的这个东西。79随机产生一个数随机数倒T行田字型反7字型7字型反ZZ字型一字型图5-8 下落方块儿图的形状定义一个4x4方阵,共16个小格。用“0”和“1”来表示每个方格是绘制还是空白,由此可以组合出多种图形,如图所示:图5-9 图形模块是设计其中图一表示为0,0,0,0, 1,1,1,1 , 0,0,0,0, 0,0,0,0其中图二表示为0,0,0,0, 0,1,1,0 , 0,1,1,0, 0,0,0,0其中图三表示为0,0,0,0, 0,1,0,0 , 0,1,1,1, 0,0,0,0其中图四表示为0,0,0,0
38、, 0,1,0,1 , 0,1,1,0, 0,0,1,0方块的旋转是通过绘制4个方向的方块,在不同旋转角度显示不同方向的方块来完成的。所以程序要控制方块的旋转方向,只要控制显示哪副图就可以了。本游戏是用一个三维数组int store = new int;作为存储方块的数据结构来保存方块的28种状态的数据存储模块包括游戏中关卡数据的存储和的分数据的存储。游戏每一次启动都将全部删除上次启动时所产生的数据,重新进行新的数据存储。后台运行时重新进入游戏不算做重启游戏,故数据不会重置。工具类模块将自身的静态成员或者方法提供给游戏中的其他类使用。第六章 游戏中各个类中实现的功能由于在本次游戏的开发中本人对
39、代码的注释比较详尽,故对各个类所实现的功能在代码中都有较详细的注释。(1)游戏的左、右、下的移动功能和上的变形功能的实现;由TlieView和TetrisView类来实现代码功能的类:右移功能实现public boolean moveRightOnCourt(Court court) Log.i(tetris,here is moveRightOnCourt); for (int i = 0; i 4; i+) for (int j = 0; j 4; j+) if (mTileij != 0) if ( !court.isSpace(mOffsetX + i + 1, mOffsetY +
40、j) ) return false;+mOffsetX;return true;左移功能实现public boolean moveLeftOnCourt(Court court) int i,j;for (i = 0; i 4; i+) for (j = 0; j 4; j+) if (mTileij != 0) if (!court.isSpace(mOffsetX + i - 1, mOffsetY + j) return false;mOffsetX-;return true;下移功能实现public boolean moveDownOnCourt(Court court) int i,
41、j;for (i = 0; i 4; i+) for (j = 0; j 0) tempShape-; else tempShape += 3;for (int i = 0; i 4; i+) for (int j = 0; j 4; j+) tempTileij=TileStore.storetempShapei;tempX = mOffsetX;tempY = mOffsetY;boolean canTurn = false;if( court.availableForTile(tempTile,tempX,tempY) )canTurn = true;else if (court.ava
42、ilableForTile(tempTile,tempX-1,tempY) )canTurn = true;tempX-;else if(court.availableForTile(tempTile,tempX-2,tempY) )canTurn =true;tempX -=2;else if(court.availableForTile(tempTile,tempX+1,tempY) )canTurn = true;tempX+;else if(court.availableForTile(tempTile,tempX+2,tempY) )canTurn = true;tempX += 2;if (canTurn) mShape = tempShape;mOffsetX = tempX;mOffsetY = tempY;for (int i = 0; i 4; i+) for (int j = 0; j 4; j+) mTileij = tempTileij;return true;return false;完成游戏边界控制;(2)游戏显示模块;完成游戏界面的设计和布局;private void paintSpeed(Canvas canvas)mPaint.setColor(Color.BLUE);canvas.drawText(