收藏 分销(赏)

基于Android的俄罗斯方块的设计与实现完整版样本.doc

上传人:二*** 文档编号:4535328 上传时间:2024-09-27 格式:DOC 页数:44 大小:422.50KB
下载 相关 举报
基于Android的俄罗斯方块的设计与实现完整版样本.doc_第1页
第1页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、摘要 Abstract 一 引言1二 Android平台简介22.1 平台背景概述22.2 系统概述22.3 Android系统特点32.4 Android手机强大功能32.5 Android应用程序框架52.6 Android开发环境搭建62.6.1 Android SDK安装62.6.2 Android SDK配备72.6.3 安装和配备ADT72.6.4 模仿器配备8三 俄罗斯方块需求分析93.1 游戏简介93.2 游戏功能分析93.3 方块及旋转变换需求分析103.4 游戏运营需求分析103.5 消行和分数记录需求分析11四 游戏总体设计分析124.1 总体设计思想124.2 游戏类设

2、计13五 详细设计与实现175.1 游戏开始菜单界面设计175.2 方块类设计与实现175.3 方块装载185.4 方块控制设计205.5 方块消行245.6 分数记录和速度控制255.7 游戏界面绘制265.8 游戏结束27六 游戏实现成果296.1 游戏菜单界面296.2 游戏协助界面296.3 游戏运营界面296.4 游戏结束界面30结束语31道谢32参照文献33摘 要Android作为Google为移动终端打造真正开放和完整智能手机系统,近年来受到了开发者广泛关注。该平台由操作系统、中间件、顾客界面和应用软件构成。本文重要简介了Android平台背景和开发环境搭建以及俄罗斯方块开发过程

3、,基于对Android开源平台构架理解和开发环境搭建完毕了俄罗斯方块游戏设计。俄罗斯方块游戏涉及方块装载、键盘事件解决、方块操作控制、下降速度控制、到达事件解决、满行判断及消行、显示控制等几大模块。本设计采用Java语言在Android开发平台下设计实现了俄罗斯方块游戏。核心字:Android;Java;俄罗斯方块;手机游戏AbstractAs a truly opened and completed mobile platform,Android which devised by Google was concerned sidely by developers in recent year

4、s. The platform consists of the operating system,the middle-ware,the user Interface and the application software.This paper mainly introduced the background of Android platform,the development environments setting up and the development process of Puzzle game and Tetris game. Based on the comprehens

5、ion of the open-source building of Android and the construction of development environment,the Tetris game were completed. Tetris game contains modules of the square-loading,the keyboard events handling,the block-rotating,the drop speed controlling,the incident handling,the full line judging and van

6、ishing and the display-controlling. Tetris game were accomplished by the Java language on Android development environment platform. Keywords:Android;Java;Tetris;Mobile phone game 一 引言Android一词本义指“机器人”,于11月5日被Google宣布为基于Linux内核开源手机造作系统名称。该平台由操作系统、中间件、顾客界面和应用软件构成,是一种为移动终端打造真正开放和完整智能手机系统。Android发布吸引了众多

7、开发者目光,它不但功能强大,并且具备开放和免费等先天优势,全球范畴内电信行业、手机制造商因而毫不踌躇地加入到Android开放联盟中来。随着googleAndroid智能手机平台推出,不久便在其周边汇集了全球移动领域一大批重量级厂商并构成了google开放手机联盟(Open Handset Alliance),“开放手机联盟”表达:Android平台可以促使移动设备创新,让顾客体验到最优质移动服务。同步,开发商也将得到一种新开放级别,更以便地进行协同合伙,从而保障新型移动设备研发速度,因而Android是第一种完整、开放、免费手机平台。开发Android应用程序使用Java语言是面向对象编程语

8、言,面向对象技术较好地适应了当今软件开发过程中新浮现种种老式面向过程语言所不能解决问题,涉及软件开发规模扩大、升级加快、维护量增大以及开发分工日趋细化、专业化和原则化等,是一种迅速成熟、推广软件开发办法。面向对象技术核心是以更接近人类思维方式建立计算机逻辑模型,它运用类和对象机制将数据与其上操作封装在一起,并通过统一接口与外界交互,使反映现实世界实体各个类在程序中可以独立、自治、继承;这种办法非常有助于提高程序可维护性和可重用性,大大提高了开发效率和程序可管理性,使得面向过程语言难于操纵大规模软件可以很以便创立、使用和维护。 本文基于 Android 开发平台,使用 Java 语言编写了俄罗斯

9、方块游戏,通过不断编写、调试、完善,最后使程序顺利运营。二 Android平台简介2.1 平台背景概述 早在 年,google就低调收购了当时成立仅 22 个月,致力于手机软件和手机操作系统研发高科技公司 Android,至此google为其进军智能手机领域开响了第一枪。 年 11 月 5 日,Android 被google正式发布作为自己手机系统平台,而在未公开之前常被传闻为 Google 电话或 gPhone。AndroidLogo是一种全身绿色机器人,如图2-1所示。图2-1 googleAndroid机器人标志2.2 系统概述 Android 一词本义指“机器人”,同步也是 Googl

10、e 于 年 11 月 5 日宣布基于 Linux 内核开源手机操作系统名称,该平台由操作系统、中间件、顾客界面和应用软件构成,号称是首个为移动终端打造真正开放和完整移动软件。它是一种为移动终端打造真正开放和完整智能手机系统。其初期由 Google 开发,后由开放手机联盟OpenHandset Alliance开发。它采用了软件堆层(software stack,又名以软件叠层)架构,重要分为三某些,底层以 Linux 内核为基本,由 C语言开发,只提供基本功能;中间层涉及函数库 Library 和虚拟机 Virtual Machine, 由C+开发;最上层是由各公司自行开发,以 Java 编写

11、各种应用软件,如通话程序,短信程序等。Android 平台整体自底向上由如下四个层次构成:Linux 内核层、Android 运营时库和其她库层、应用框架层、应用程序层。2.3 Android系统特点 Android系统特点大体有如下几点:(1)开放性。Google与开放手机联盟合伙开发了Android,Google通过与运营商、设备制造商、开发商和其她关于各方结成深层次合伙伙伴关系,但愿通过建立原则化、开放式移动电话软件平台,在移动产业内形成一种开放式生态系统。(2)应用程序无界限。Android上应用程序可以通过原则API访问核心移动设备功能。通过互联网,应用程序可以声明它们功能可供其她应

12、用程序使用。(3)应用程序是在平等条件下创立。移动设备上应用程序可以被替代或扩展,虽然是拨号程序或主屏幕这样核心组件。(4)应用程序可以轻松地潜入网络。应用程序可以轻松地潜入HTML、JavaScript和样式表,还可以通过WebView显示网络内容。(5)应用程序可以并行运营。Android是一种完整多任务环境,应用程序可以在其中并行运营。在后台运营时,应用程序可以生成告知以引起注意。2.4 Android手机强大功能 Android手机功能比起老式手机来说相称强大,其优势也很明显:(1)智能虚拟键盘。虚拟键盘浮现意味着基于Android1.5或以上版本(Android 2.0)移动设备可以

13、同步支持物理键盘和虚拟键盘。不同输入方式可满足顾客在特定场景需求。Android虚拟键盘可以在任何应用中提供,涉及Gmail、浏览器、SMS,固然也涉及大量第三方应用,如自动校正、推荐、顾客词典等。不同于其她手机平台,Android 1.5及以上版本还支持第三方虚拟键盘应用安装。如图2-2所示。 (2)使用Widget实现桌面个性化。可以用Widget“武装”自己桌面。大多数小Web应用都是从网络上获得实时数据并展示给顾客。Android预装了5个桌面Widget,涉及数字时钟、日历、音乐播放器、相框和搜索。不同于iPhone,Android通过内置应用程序安装第三方Widget。如图2-3所

14、示。 图2-2 虚拟键盘 图2-3 用Widget实现个性化桌面(3)用在线文献夹迅速浏览在线数据。类似于OS X LeopardQuickLook特性,Android在线文献夹可显示常用数据条目,例如联系人、喜欢应用、E-mail信息、播放列表、书签、RSS源等,并不需要运营系统程序解决特定数据条目。在线文献夹数据实时更新,就像通过云或是本地创立新数据。什么是最佳,开发者可以拓展通用数据条目和注册新数据类型内置支持。(4)视频录制和分享。Android尚有录制和分享视频功能,对回放和MPEG-4、3GP等视频格式也有了更好支持。可以通过E-mail、MMS或直接上传到YouTube等方式来分

15、享视频,使用隐私控制来决定是分享给朋友还是每个人。上传视频同步,可以继续使用手机,甚至可以继续录制和上传新视频。 (5)图片上传。在线分享图片需要点击更少。完毕照相后,当浏览图片或选取Google在线图片服务Picase时,只需轻点“分享”就会拥有1GB免费图片存储空间。(6)更快、更兼容浏览器。Android基于Webkit内核浏览器带来了重要调速装置(SpeedPumb),这得益于新Webkit渲染引擎和优化Java脚本编译器(SquireIFish)。当使用包括大量Java脚本复杂Web应用时,可以体验到更佳性能。除提高速度外,Android浏览器还支持Web页面内复制和粘贴操作,顾客可

16、以选中文本并复制,然后粘贴到搜索框中进行搜索。(7)Voice Search语音搜索。带有语音辨认技术Google手机已于11月面世,它支持语音搜索功能。该功能增强了默认搜索能力,已超过纯文本搜索。当你大声说出要搜索内容后,Android将上传数字信号并记录到Google服务器中。在服务器中,语音辨认技术能将语音转化为特定文本搜索,使之通过Google搜索引擎,通过地理位置筛选,将成果反馈到手机设备。(8)立体声蓝牙和免提电话。除了增强免提电话体验,Android还支持立体声蓝牙(A2DP和AVCRP),并有自动配对功能。(9)强大GPS技术。Android内部提供了大量GPS组件,咱们可以很

17、轻松地获得设备当前位置等信息,让导航等功能更加完美。(10)Android系统硬件检测。Android可自动检测和修复SD卡文献系统,容许第三方应用显示Android系统硬件特性。为了让顾客下载到与组件设备更匹配应用,咱们可以检测顾客设备硬件信息,让满足应用规定设备安装该程序,当更多Android设备建立在不同硬件上时,这个功能会显得很实用。2.5 Android应用程序框架框架是一种应用程序核心,是所有参加开发程序员共同使用和遵守商定,人们在其商定上进行必要扩展,但程序始终保持主体构造一致性。其作用是让程序保持清晰和一目了然,在满足不同需求同步又不互相影响。Android 系统提供应应用开发

18、者自身就是一种框架,所有应用开发都必要遵守这个框架原则。在开发应用时就是在这个框架上进行扩展,Android框架有如下功能可供使用。 android.app: 提供高层程序模型和基本运营环境。 android.content: 包括对各种设备上数据进行访问和发布。 android.database:通过内容提供者浏览和操作数据库。 android.graphics:底层图形库,包括画布、颜色过滤、点、矩阵,可以将它们直接绘制到屏幕上。 android.media:提供某些类管理各种音频、视频媒体接口。 :提供协助网络访问类,超过普通.*接口。 android.os:提供了系统服务、消息传播和I

19、PC机制。 android.opengl:提供OpenGL工具。 android.provider:提供访问Android内容提供者类。 android.telephony:提供与拨打电话有关API交互。 android.view:提供基本顾客界面接口框架。 android.util:涉及工具性办法,例如时间日期操作。 android.webkit:默认浏览器操作接口。 android.widget:包括各种UI元素(大某些是可见)在应用程序布局中使用。2.6 Android开发环境搭建配备Android开发环境之前,一方面需要理解Android对操作系统规定。它可以使用Windows XP及

20、其以上版本、Mac OS、Linux等操作系统,以Windows XP为例进行解说。Android开发所需软件版本及其下载地址如表2-1所示。表2-1 Android开发所需软件下载地址软件名称 下载地址JDK Eclipse http:/www.eclipse.orgSDK ADT http:/dl-Android 以 Java 作为开发语言,JDK是进行Java 开发时必须开发包。Eclipse是一款非常先进开源IDE,在大量插件“配合”下,完全可以满足从公司级Java应用到手机终端Java游戏开发,Google官方也提供了基于EclipseAndroid开发插件ADT。Eclipse安装

21、非常简朴,直接将下载压缩包解压即可。安装了JDK和Eclipse后,就要安装Android SDK和ADT插件了。2.6.1 Android SDK安装(1)解压缩下载好SDK安装包到要安装SDK途径,然后运营“SDK Stetup.exe”。(2)如果遇到了消息为“Failed to fetch URL”错误提示,那么需要将HTTPS方式改为HTTP方式,在“Android SDK and AVD Manager”窗口左侧选取“Settings”,选中“Force https:/”选项,点击“Save&Apply”并重新运营SDK Setup.exe。(3)点击“Available Pack

22、ages”,选取要安装API版本及USB驱动和SDK文档,如果有需要可以所有选取。(4)选取好之后点击“Install Selected”按钮,安装选中软件包,在接下来浮现界面中依次点击“Accept All”单选按钮和“Install Accepted”按钮,开始下载所选取安装包。下载完毕之后,依照提示即可完毕后续安装操作,到这里,Android SDK安装已经完毕,下面来配备Android SDK。2.6.2 Android SDK配备需要将Android SDK安装目录中tools文献夹途径添加到环境变量中以便使用,操作环节如下所述。(1)右键点击“我电脑”,依次选取“属性”“高档”“环

23、境变量”选项。(2)选取“系统变量”中变量名为“path”项,点击编辑按钮,将Android SDK安装文献夹下tools文献夹途径加入到“path”变量中,注意用“;”隔开。(3)依次点击“拟定”,完毕环境变量配备。2.6.3 安装和配备ADTADT插件安装和配备环节如下所述。 (1)启动Eclipse,点击Help菜单,依次选取“Software Update”项和“Avaiable”选项,成果如图2-4所示。图2-4 添加ADT更新地址(2)点击“OK”,这时也许会浮现如图2-5所示错误。图2-5 更新地址错误解决这个问题办法是:将“https”更改为“http”,在接下来对话框中选中“

24、Name”下所有选项,依照提示即可完毕后续安装过程。(3)打开菜单“Windows”,依次选取“Preferences”“Android”,点击“Browse”按钮,选取Android SDK安装途径。(4)点击“OK”按钮,打开菜单“File”,依次选取“NEW”“Projece”菜单命令,浮现“Android Projest”选项,则表达安装配备成功。到这里,准备工作已经就绪。2.6.4 模仿器配备从Android1.5开始引入AVD(Android Virtual Device)这个概念,AVD是一种通过配备模仿器。在创立AVD时可以配备选项有:模仿器影像大小、触摸屏、轨迹球、摄像头、屏

25、幕辨别率、键盘、GSM、GPS、Audio录放、SD卡支持、缓存区大小等。配备Android模仿器详细环节如下所示。(1)一方面打开“Android SDK and AVD Manager”。(2)点击左边“Virtual Devices”选项,再点击右边“New”按钮,新建一种AVD。(3)在“Name”标签处填写AVD名字,在“Target”标签处选取API级别,在“Size”标签处填写要创立SD卡大小,在“Skin”标签中设立模仿器风格。(4)接下来,还需要配备模仿器运营AVD。操作环节为:点击“Run”,选取“Run Configurations”菜单命令,打开“Run Configu

26、rations”对话框,双击“Run Configurations”对话框左边导航器中“Android Application”菜单命令,创立一种Android项目运营配备。在右边“Name”文本框中输入Android项目运营配备名字,在“Android”选项卡中“Project”文本框中输入要运营Android项目,同样可以点击右边“Browse”按钮来选取Android项目。(5)点击“Target”选项卡,选取“Autonmatic”单选项,然后在AVD列表框中选取刚才创立AVD,点击“Run”按钮,这样便可以运营项目了。三 俄罗斯方块需求分析3.1 游戏简介俄罗斯方块是家喻户晓益智小游

27、戏,它由俄罗斯人阿列克谢帕基特诺夫(Alexey Pazhitnov)在1984年6月运用空暇时间编写游戏程序,故此得名。俄罗斯方块基本规则是移动、旋转和摆放游戏随机产生各种方块,使之排列成完整一行或多行并且消除得分。它看似简朴却变化无穷,俄罗斯方块上手极其简朴,且游戏过程变化无穷,作为游戏自身很有魅力,但是要纯熟掌握其中操作和摆放技巧,难度却不低。此软件给顾客提供了一种呈现自己高超技艺场合,在这里,它不但放松自己,还能感受到游戏中乐趣。游戏区域会从顶部不断落下7种下坠物一种,游戏区域右上角有一种区域可以显示下一种下坠物形状,玩家可以控制下坠物移动、旋转和一键究竟,通过玩家操作,下坠物在游戏区

28、域以“摆积木”形式浮现。下坠物在一行或多行堆满后就可以自动消除,消行后会得到相应分数,如果当前下坠物堆积至窗口顶端,则游戏结束。3.2 游戏功能分析先分析一下整个游戏详细实现,一方面,游戏有开始、切换界面、结束等操作接口,而在游戏过程中,随着玩家按键,会浮现下坠物形态变化、下坠物迅速下坠、摆放下坠物件、销毁填满行、产生下一种方块等功能。先分析游戏特点,然后对这些功能一一进行细化,从而完毕整个游戏设计。(1)游戏方块控制功能。当玩家按下相应操作键位时,通过条件判断,判断该操作与否可行,如果可行就执行相应操作。重要操作有游戏方块左移,右移,迅速下降,旋转变形。(2)方块生成显示功能。游戏中会有两个

29、地方产生方块,一种是游戏区域上方会有方块落下,尚有就是在屏幕右上角,也会产生一种方块,该方块为游戏区域下一种要产生方块。同步当游戏方块左右移动,下落,旋转变形时,要清除先前游戏方块,还规定出被操作后方块坐标,用新坐标重绘游戏方块。(3)方块摆放消行功能。当方块落究竟部时候,通过条件判断,把方块摆放在屏幕底部并持续显示,当某行或者某几行被填满时候,要把这几行消除,并且被消除行数上方方块整体下移。(4)游戏分数记录功能。记录游戏积分,每当有行被消除时,游戏积分会依照一次消除行数而增长相应分数。(5)游戏速度更新功能。当游戏积分达到某一条件时,系统将自动为玩家提高难度。难度增长时候,方块下降速度会加

30、快,增长游戏可玩性和趣味性。(6)游戏结束控制功能。通过判断,如果摆放方块超过屏幕顶端时候,则游戏结束,可以返回菜单重新开始游戏。3.3 方块及旋转变换需求分析本游戏共有7种类型方块,而每种类型方块还可以通过旋转变换成4种不同形态方块进行摆放。方块生成后可以将它们摆放在一种20*10区域内,该区域可以看作是有许各种等面积小方格构成区域,而这些区域状态只有两种,被方块占据或空闲。因而,对于整个游戏区域空间是占据或空闲,可以用一位数来标记,对于7种方块和它们旋转后形态咱们可以用不同标记进行标记。对于旋转,游戏中所有方块都是按照顺时针旋转规则进行,并且在旋转过程中它们不会由于旋转而下降,总会保持在同

31、一高度,但是在同一高度最多旋转三次,就会下降一格,任何下坠物通过一种旋转周期还会变回原型。3.4 游戏运营需求分析游戏开始后会随机产生一种方块,显示在游戏区域,同步右上角也会随机产生一种新方块,该方块为游戏区域下一种将要产生方块,游戏区域不再随机生成方块。当游戏区域方块下落究竟后,新方块再次进入游戏区域,如此循环,直到游戏结束,这就是游戏正常工作。当顾客进行一定操作交互时候,运营程序可以依照顾客操作批示对方块进行控制,而这些操作都是响应有关按键而执行。按键盘上键,此事件实现下坠方块旋转操作,方块并非任何状况都能旋转,如果旋转后与已摆放好方块有冲突或超过边界时,均不能发生旋转。因而一方面要判断与

32、否有足够空间进行旋转,然后决定与否旋转。按键盘下键,此事件实现下坠方块一键究竟操作,使方块迅速下降到游戏区域底部或者已经摆放好方块之上。按键盘左键,此事件实现下坠方块左移操作,一方面要判断此方块与否可以发生左移,当越界或被其她摆放好方块阻挡时,则不能左移。按键盘右键,此事件实现下坠方块右移操作。一方面要判断此方块与否可以发生右移,当越界或被其她摆放好方块阻挡时,则不能右移。3.5 消行和分数记录需求分析当一种方块下落到游戏区域底部进行摆放后就要进行一次消行检测,检测与否有行被填满,检测时从刚摆放方块最上面那一行开始往下检测,由于方块形状限制可知每次最多只能消除四行,因此只需检测四行即可。检测到

33、一行被填满时该行上面方块整体下移一行,涉及空洞,然后继续检测下一行,直到四行都被检测完。消行后来要记录游戏积分,依照每次消除行数t不同而累加不同积分,游戏积分通过公式score+=t*t*10来计算,消除一行得10分,消除两行得40分,消除三行得90分,消除四行得160分。当分数达到一定规定后,游戏速度会加快,游戏速度有一种最大值,当到达这个值时,游戏速度将不再加快。四 游戏总体设计分析4.1 总体设计思想俄罗斯方块游戏设计重要从9个方面进行构思。(1)游戏主界面设计。(2)方块设计。(3)方块旋转。(4)方块运动状况(涉及向左、向右、下坠)。(5)方块自动消行功能。(6)游戏速度调节。(7)

34、游戏积分计算。(8)游戏开始菜单设计。(9)游戏结束界面设计。一方面,是定义方块数据构造,这是游戏一大难点,本设计用一种三维数组来表达方块数据模型;游戏区域状态,用一种二维数组来表达。另一方面,分析按键含义,并做出响应。响应模块:“左移”、“右移”、“下坠”和“旋转”几种模块,负责变化当前方块状态数据;绘制方块模块:位置移动后,删除本来方块,把方块绘制到新位置上;检查模块:在每次变化状态之前,对方块企图占用区域进行检查,如果不能容下新方块,则本次移动失败,不执行移动。如果方块下落到游戏区域底端了,则应当固定在当前位置,每次当方块究竟时候,都需要检查一下与否有新行被排满了,如果有,则应消行。如果

35、方块触顶了,则游戏结束。 俄罗斯方块是一种看似简朴但比较有趣并且耐玩游戏,游戏中共有7种类型方块,每种方块由4个方格构成,如图4-1所示。 0字型方块 1字型方块 S字型方块 Z字型方块 J字型方块 L字型方块 T字型方块图4-1 游戏中7种方块4.2 游戏类设计依照游戏功能,俄罗斯方块设计了8个类。这8个类分别是:ActGameover,ActivityGame,ActivityHelp,contro,showPage,StarSurfaceView,Store,TTetris,每个类实现功能各不相似,而彼此之间又存在着交叉。TTetris类设计:TTetris开始菜单类,这个类继承了Act

36、ivity类,作为游戏第一种界面,总共定义了三个按钮,一种可以开始游戏,一种进入协助阐明界面,尚有一种是退出游戏。ActivityGame类设计:ActivityGame启动游戏类,该类继承了Activity类,用来启动游戏,进入游戏画面。ActivityHelp类设计:ActivityHelp游戏协助类,显示协助界面,用来简介游戏基本操作规则,该界面从开始菜单选取进入,该界面设有一种按钮,用来返回开始菜单。ActGameover类设计:ActGameover游戏结束类,该类继承了Activity类,是游戏结束画面,每当游戏失败时就会自动跳转到该界面,从该界面可以选取返回开始菜单。Store类

37、设计:Store方块类,该类设计了方块数据构造,用一种三维数组来表达一共28种方块模型,该类定义了办法Sttore(int)用来随机生成一种方块,用random()办法实现随机数产生,产生方块用两个一维数组ai,aj记录下来。表4-1 Store类属性属性名数据类型阐明kindint记录产生何种类型方块colorint记录方块颜色aiint记录方格行ajint记录方格列storeint方块数据构造表4-2 Store类办法办法名返回值类型阐明Store()无类构造办法Sttore(int)void产生方块,并且用ai,aj记录下来showPage类设计:showPage方块类,该类定义了游戏界

38、面框架,用一种二维数组array来构建游戏基本框架。该类重要定义了一系列办法,用来实现方块某些操作。办法putS(Store)把下一种将要产生方块存入数组,存入数组是一种数值为17整型整数,用来表达7种不同颜色方块。delS(Store)把用来存储一种将要产生方块数组置零,从而用来实现删除下一种方块区域方块。putStore(Store,int,int)把要在屏幕相应位置上产生方块存入数组array,用17来赋值,达到显示不同颜色方块效果。delStore(Store,int,int)把数组array相应位置清零,达到删除屏幕上相应位置方块效果。 leftM(Store,int,int)和ri

39、ghtM(Store,int,int)用来判断方块与否可以左右移动,如果可以则返回true,不可以返回false。fit(Store,int,int)用来判断方块与否碰壁,碰壁了返回false,没有返回true。outM(Store,int,int)判断方块与否遇到游戏区域顶端,用来判断游戏与否结束。flood(Srore,int,int)检测与否可以消行,如果一行被填满,则消除该行,并记录消除行数,用来计分。remove(int)消除某一行,消除行上面方块整体下移一行。 表4-3 showPage类重要属性属性名数据类型简要阐明coint用该数组按位存储游戏分数brrayint记录下一种区域

40、方块arrayint记录游戏区域方块 表4-4 showPage类重要办法办法名返回值类型简要阐明putS(Store)void把下一种方块存入数组braaydelS(Store)void把数组braay置0,即删除方块putStore(Store,int,int)void把游戏区域方块存入数组arraydelStore(Store,int,int)void删除游戏区域方块leftM(Store,int,int)boolean判断方块与否可以左移rightM(Store,int,int)boolean判断方块与否可以右移fit(Store,int,int)boolean判断方块与否遇到边界或者

41、遇到别方块outM(Store,int,int)boolean判断方块与否超过屏幕顶端flood(Store,int,int)int判断与否可以消行,如果可以进行消行remove(int)void消行contro类设计:contro分数记录和速度控制类,用来记录游戏分数,并通过度数来调节方块下坠速度以提高游戏难度,增长游戏趣味性和挑战性。该类定义了办法tscore(int)用来记录游戏分数并把该分数按位存入一维数组,passWar()通过度数控制方块下坠速度,实现一种简朴游戏关卡控制。表4-5 contro类重要属性属性名数据类型简要阐明scoreint记录游戏分数speedint调节游戏速度

42、scoint按位存储游戏分数表4-6 contro类重要办法办法名返回值类型简要阐明tscore(int)void记录游戏分数并按位存入数组scopassWar()void通过度数变化速度控制变量speedStarSurfaceView类设计:StarSurfaceView游戏框架类,该类继承了SurfaceView类,实现了Runnable,SurfaceHolder.Callback,View.OnKeyListener接口。该类用来绘制游戏运营界面,用draw()来实现视图绘制,游戏背景绘制,方块绘制,分数绘制等。run()来循环绘图,从而使游戏持续运营下去,该办法实现了游戏逻辑功能,对

43、方块操作,方块摆放都是在这个办法内实现,调用了draw()实现循环绘制,游戏运营都是靠该办法实现。 表4-7 StarSurfaceView类重要办法办法名返回值类型简要阐明run()void游戏运营办法draw()void绘制游戏图片onKeyup(int,KeyEvent)void监听按键 五 详细设计与实现5.1 游戏开始菜单界面设计游戏开始菜单界面是游戏重要构成某些,为了增强游戏界面美化效果,同步又使界面简洁直观,该界面用一张图片作为背景,添加了三个按钮,这三个按钮分别是开始按钮,协助按钮,退出按钮。该界面由类TTetris实现,该类继承Activity类,当监听到开始按钮被点击时,游

44、戏会跳转到游戏开始Activity,当监听到协助按钮被点击时,就跳转到协助Activity,监听到退出键被点击时,游戏退出,该类实现起来较为简朴。5.2 方块类设计与实现方块是游戏最基本元素,俄罗斯方块所有操作都是建立在对方块操作上,方块可以用不同颜色方格图片来显示,方块数据构造定义在类Store中。方块类定义了方块数据构造,用一种三维数组来表达7种类型一共28种方块,每一种方块由一种44二维数组表达。定义44数组是由于7种方块旋转变化正好都在长、宽各为4个单元格内。当数组元素为1时则显示一种小方格,为0是则不显示。这28种状态数据模型用三维数组store表达。public static in

45、t store = new int 0,0,1,0 , 0,0,1,0 , 0,0,1,0 , 0,0,1,0 ,/I 0,0,0,0 , 0,0,0,0 , 1,1,1,1 , 0,0,0,0 ,/I 0,0,1,0 , 0,0,1,0 , 0,0,1,0 , 0,0,1,0 ,/I 0,0,0,0 , 0,0,0,0 , 1,1,1,1 , 0,0,0,0 ,/I 0,0,0,0 , 0,1,1,0 , 0,1,1,0 , 0,0,0,0 ,/O 0,0,0,0 , 0,1,1,0 , 0,1,1,0 , 0,0,0,0 ,/O 0,0,0,0 , 0,1,1,0 , 0,1,1,0 , 0,0,0,0 ,/O 0,0,0,0 , 0,1,1,0 , 0,1,1,0 , 0,0,0,0 ,/O 0,1,0,0

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服