基于Android的俄罗斯方块的设计与实现.docx
- 文档编号:9238847
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:37
- 大小:290.83KB
基于Android的俄罗斯方块的设计与实现.docx
《基于Android的俄罗斯方块的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Android的俄罗斯方块的设计与实现.docx(37页珍藏版)》请在冰豆网上搜索。
基于Android的俄罗斯方块的设计与实现
摘要
Android作为Google为移动终端打造的真正开放和完整的智能手机系统,近年来受到了开发者的广泛关注。
该平台由操作系统、中间件、用户界面和应用软件组成。
本文主要介绍了Android平台的背景和开发环境的搭建以及俄罗斯方块的开发过程,基于对Android开源平台构架的理解和开发环境的搭建完成了俄罗斯方块的游戏设计。
俄罗斯方块游戏包括方块的装载、键盘的事件处理、方块操作控制、下降速度控制、到达事件处理、满行判断及消行、显示控制等几大模块。
本设计采用Java语言在Android开发平台下设计实现了俄罗斯方块游戏。
关键字:
Android;Java;俄罗斯方块;手机游戏
Abstract
Asatrulyopenedandcompletedmobileplatform,AndroidwhichdevisedbyGooglewasconcernedsidelybydevelopersinrecentyears.Theplatformconsistsoftheoperatingsystem,themiddle-ware,theuserInterfaceandtheapplicationsoftware.
ThispapermainlyintroducedthebackgroundofAndroidplatform,thedevelopmentenvironment’ssettingupandthedevelopmentprocessofPuzzlegameandTetrisgame.Basedonthecomprehensionoftheopen-sourcebuildingofAndroidandtheconstructionofdevelopmentenvironment,theTetrisgamewerecompleted.Tetrisgamecontainsmodulesofthesquare-loading,thekeyboardeventshandling,theblock-rotating,thedropspeedcontrolling,theincidenthandling,thefulllinejudgingandvanishingandthedisplay-controlling.TetrisgamewereaccomplishedbytheJavalanguageonAndroiddevelopmentenvironmentplatform.
Keywords:
Android;Java;Tetris;Mobilephonegame
一引言
Android一词的本义指“机器人”,于2007年11月5日被Google宣布为基于Linux内核的开源手机造作系统的名称。
该平台由操作系统、中间件、用户界面和应用软件组成,是一个为移动终端打造的真正开放和完整的智能手机系统。
Android的发布吸引了众多开发者的目光,它不仅功能强大,而且具有开放和免费等先天优势,全球范围内的电信行业、手机制造商因此毫不犹豫地加入到Android开放联盟中来。
随着谷歌Android智能手机平台的推出,很快便在其周围汇集了全球移动领域一大批的重量级厂商并组成了谷歌开放手机联盟(OpenHandsetAlliance),“开放手机联盟”表示:
Android平台可以促使移动设备的创新,让用户体验到最优质的移动服务。
同时,开发商也将得到一个新的开放级别,更方便地进行协同合作,从而保障新型移动设备的研发速度,因此Android是第一个完整、开放、免费的手机平台。
开发Android应用程序使用的Java语言是面向对象的编程语言,面向对象技术较好地适应了当今软件开发过程中新出现的种种传统面向过程语言所不能处理的问题,包括软件开发的规模扩大、升级加快、维护量增大以及开发分工日趋细化、专业化和标准化等,是一种迅速成熟、推广的软件开发方法。
面向对象技术的核心是以更接近人类思维的方式建立计算机逻辑模型,它利用类和对象的机制将数据与其上的操作封装在一起,并通过统一的接口与外界交互,使反映现实世界实体的各个类在程序中能够独立、自治、继承;这种方法非常有利于提高程序的可维护性和可重用性,大大提高了开发效率和程序的可管理性,使得面向过程语言难于操纵的大规模软件可以很方便的创建、使用和维护。
本文基于Android开发平台,使用Java语言编写了俄罗斯方块游戏,通过不断的编写、调试、完善,最终使程序顺利运行。
二Android平台介绍
2.1平台背景概述
早在2005年,谷歌就低调收购了当时成立仅22个月,致力于手机软件和手机操作系统研发的高科技企业Android,至此谷歌为其进军智能手机领域开响了第一枪。
2007年11月5日,Android被谷歌正式公布作为自己的手机系统平台,而在未公开之前常被传闻为Google电话或gPhone。
Android的Logo是一个全身绿色的机器人,如图2-1所示。
图2-1谷歌Android机器人标志
2.2系统概述
Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux内核的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。
它是一个为移动终端打造的真正开放和完整的智能手机系统。
其早期由Google开发,后由开放手机联盟OpenHandsetAlliance开发。
它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分,底层以Linux内核为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机VirtualMachine,由C++开发;最上层是由各公司自行开发,以Java编写的各种应用软件,如通话程序,短信程序等。
Android平台整体自底向上由以下四个层次组成:
Linux内核层、Android运行时库和其他库层、应用框架层、应用程序层。
2.3Android系统的特点
Android系统的特点大体有如下几点:
(1)开放性。
Google与开放手机联盟合作开发了Android,Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
(2)应用程序无界限。
Android上的应用程序可以通过标准API访问核心移动设备功能。
通过互联网,应用程序可以声明它们的功能可供其他应用程序使用。
(3)应用程序是在平等的条件下创建的。
移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。
(4)应用程序可以轻松地潜入网络。
应用程序可以轻松地潜入HTML、JavaScript和样式表,还可以通过WebView显示网络内容。
(5)应用程序可以并行运行。
Android是一种完整的多任务环境,应用程序可以在其中并行运行。
在后台运行时,应用程序可以生成通知以引起注意。
2.4Android手机强大的功能
Android手机的功能比起传统手机来说相当强大,其优势也很明显:
(1)智能虚拟键盘。
虚拟键盘的出现意味着基于Android1.5或以上版本(Android2.0)的移动设备可以同时支持物理键盘和虚拟键盘。
不同的输入方式可满足用户在特定场景的需求。
Android虚拟键盘可以在任何应用中提供,包括Gmail、浏览器、SMS,当然也包括大量的第三方应用,如自动校正、推荐、用户词典等。
不同于其他手机平台,Android1.5及以上的版本还支持第三方虚拟键盘应用的安装。
如图2-2所示。
(2)使用Widget实现桌面个性化。
可以用Widget“武装”自己的桌面。
大多数小的Web应用都是从网络上获得实时数据并展示给用户的。
Android预装了5个桌面Widget,包括数字时钟、日历、音乐播放器、相框和搜索。
不同于iPhone,Android通过内置的应用程序安装第三方Widget。
如图2-3所示。
图2-2虚拟键盘图2-3用Widget实现个性化桌面
(3)用在线文件夹快速浏览在线数据。
类似于OSXLeopard的QuickLook特征,Android的在线文件夹可显示常见的数据条目,比如联系人、喜欢的应用、E-mail信息、播放列表、书签、RSS源等,并不需要运行系统程序处理特定的数据条目。
在线文件夹数据实时更新,就像通过云或是本地创建新的数据。
什么是最好的,开发者可以拓展通用数据条目和注册新数据类型的内置支持。
(4)视频录制和分享。
Android还有录制和分享视频的功能,对回放和MPEG-4、3GP等视频格式也有了更好的支持。
可以通过E-mail、MMS或直接上传到YouTube等方式来分享视频,使用隐私控制来决定是分享给朋友还是每个人。
上传视频的同时,可以继续使用手机,甚至可以继续录制和上传新的视频。
(5)图片上传。
在线分享图片需要的点击更少。
完成照相后,当浏览图片或选择Google在线图片服务Picase时,只需轻点“分享”就会拥有1GB的免费图片存储空间。
(6)更快、更兼容的浏览器。
Android的基于Webkit内核的浏览器带来了重要的调速装置(SpeedPumb),这得益于新的Webkit渲染引擎和优化的Java脚本编译器(SquireIFish)。
当使用包含大量Java脚本的复杂Web应用时,可以体验到更佳的性能。
除提高速度外,Android的浏览器还支持Web页面内的复制和粘贴操作,用户可以选中文本并复制,然后粘贴到搜索框中进行搜索。
(7)VoiceSearch语音搜索。
带有语音识别技术的Google手机已于2008年11月面世,它支持语音搜索功能。
该功能增强了默认的搜索能力,已超过纯文本搜索。
当你大声说出要搜索的内容后,Android将上传数字信号并记录到Google服务器中。
在服务器中,语音识别技术能将语音转化为特定的文本搜索,使之通过Google搜索引擎,通过地理位置的筛选,将结果反馈到手机设备。
(8)立体声蓝牙和免提电话。
除了增强的免提电话体验,Android还支持立体声蓝牙(A2DP和AVCRP),并有自动配对功能。
(9)强大的GPS技术。
Android内部提供了大量的GPS组件,我们可以很轻松地获得设备当前的位置等信息,让导航等功能更加完美。
(10)Android系统硬件检测。
Android可自动检测和修复SD卡的文件系统,允许第三方应用显示Android系统的硬件特征。
为了让用户下载到与组件的设备更匹配的应用,我们可以检测用户设备的硬件信息,让满足应用要求的设备安装该程序,当更多的Android设备建立在不同的硬件上时,这个功能会显得很实用。
2.5Android应用程序框架
框架是一个应用程序的核心,是所有参与开发的程序员共同使用和遵守的约定,大家在其约定上进行必要的扩展,但程序始终保持主体结构的一致性。
其作用是让程序保持清晰和一目了然,在满足不同需求的同时又不相互影响。
Android系统提供给应用开发者的本身就是一个框架,所有的应用开发都必须遵守这个框架的原则。
在开发应用时就是在这个框架上进行扩展,Android框架有如下功能可供使用。
Øandroid.app:
提供高层的程序模型和基本的运行环境。
Øandroid.content:
包含对各种设备上的数据进行访问和发布。
Øandroid.database:
通过内容提供者浏览和操作数据库。
Øandroid.graphics:
底层的图形库,包含画布、颜色过滤、点、矩阵,可以将它们直接绘制到屏幕上。
Øandroid.media:
提供一些类管理多种音频、视频的媒体接口。
Ø:
提供帮助网络访问的类,超过通常的.*接口。
Øandroid.os:
提供了系统服务、消息传输和IPC机制。
Øandroid.opengl:
提供OpenGL的工具。
Øandroid.provider:
提供访问Android内容提供者的类。
Øandroid.telephony:
提供与拨打电话相关的API交互。
Øandroid.view:
提供基础的用户界面接口框架。
Øandroid.util:
涉及工具性的方法,例如时间日期的操作。
Øandroid.webkit:
默认浏览器操作接口。
Øandroid.widget:
包含各种UI元素(大部分是可见的)在应用程序的布局中使用。
2.6Android开发环境的搭建
配置Android开发环境之前,首先需要了解Android对操作系统的要求。
它可以使用WindowsXP及其以上的版本、MacOS、Linux等操作系统,以WindowsXP为例进行讲解。
Android开发所需软件的版本及其下载地址如表2-1所示。
表2-1Android开发所需软件的下载地址
软件名称下载地址
JDKjava.sun.
Eclipse.eclipse.org
SDKdeveloper.android./sdk/index.html
ADTdl-ssl.google./android/eclipse/
Android以Java作为开发语言,JDK是进行Java开发时必需的开发包。
Eclipse是一款非常优秀的开源IDE,在大量插件的“配合”下,完全可以满足从企业级Java应用到手机终端Java游戏的开发,Google官方也提供了基于Eclipse的Android开发插件ADT。
Eclipse的安装非常简单,直接将下载的压缩包解压即可。
安装了JDK和Eclipse后,就要安装AndroidSDK和ADT插件了。
2.6.1AndroidSDK安装
(1)解压缩下载好的SDK安装包到要安装SDK的路径,然后运行“SDKStetup.exe”。
(2)如果遇到了消息为“FailedtofetchURL…”的错误提示,那么需要将HTTPS方式改为HTTP方式,在“AndroidSDKandAVDManager”窗口的左侧选择“Settings”,选中“Forcehttps:
//…”选项,点击“Save&Apply”并重新运行SDKSetup.exe。
(3)点击“AvailablePackages”,选择要安装的API版本及USB驱动和SDK文档,如果有需要可以全部选择。
(4)选择好之后点击“InstallSelected”按钮,安装选中的软件包,在接下来出现的界面中依次点击“AcceptAll”单选按钮和“InstallAccepted”按钮,开始下载所选择的安装包。
下载完成之后,根据提示即可完成后续的安装操作,到这里,AndroidSDK的安装已经完成,下面来配置AndroidSDK。
2.6.2AndroidSDK配置
需要将AndroidSDK安装目录中的tools文件夹路径添加到环境变量中以便使用,操作步骤如下所述。
(1)右键点击“我的电脑”,依次选择“属性”→“高级”→“环境变量”选项。
(2)选择“系统变量”中变量名为“path”的项,点击编辑按钮,将AndroidSDK安装文件夹下的tools文件夹的路径加入到“path”变量中,注意用“;”隔开。
(3)依次点击“确定”,完成环境变量的配置。
2.6.3安装和配置ADT
ADT插件的安装和配置步骤如下所述。
(1)启动Eclipse,点击Help菜单,依次选择“SoftwareUpdate…”项和“Avaiable”选项,https:
//dl-ssl.google./android/eclipse/,结果如图2-4所示。
图2-4添加ADT的更新地址
(2)点击“OK”,这时可能会出现如图2-5所示的错误。
图2-5更新地址错误
解决这个问题的方法是:
将https:
//dl-ssl.google./android/eclipse/中的“https”更改为“http”,在接下来的对话框中选中的“Name”下的所有选项,根据提示即可完成后续的安装过程。
(3)打开菜单“Windows”,依次选择“Preferences”→“Android”,点击“Browse…”按钮,选择AndroidSDK的安装路径。
(4)点击“OK”按钮,打开菜单“File”,依次选择“NEW”→“Projece…”菜单命令,出现“AndroidProjest”选项,则表示安装配置成功。
到这里,准备工作已经就绪。
2.6.4模拟器的配置
从Android1.5开始引入AVD(AndroidVirtualDevice)这个概念,AVD是一个经过配置的模拟器。
在创建AVD时可以配置的选项有:
模拟器影像大小、触摸屏、轨迹球、摄像头、屏幕分辨率、键盘、GSM、GPS、Audio录放、SD卡支持、缓存区大小等。
配置Android模拟器具体步骤如下所示。
(1)首先打开“AndroidSDKandAVDManager”。
(2)点击左边的“VirtualDevices”选项,再点击右边的“New…”按钮,新建一个AVD。
(3)在“Name”标签处填写AVD的名字,在“Target”标签处选择API等级,在“Size”标签处填写要创建的SD卡的大小,在“Skin”标签中设置模拟器的风格。
(4)接下来,还需要配置模拟器运行的AVD。
操作步骤为:
点击“Run”,选择“RunConfigurations”菜单命令,打开“RunConfigurations”对话框,双击“RunConfigurations”对话框左边的导航器中的“AndroidApplication”菜单命令,创建一个Android项目运行配置。
在右边的“Name”文本框中输入Android项目运行配置的名字,在“Android”选项卡中的“Project”文本框中输入要运行的Android项目,同样可以点击右边的“Browse…”按钮来选择Android项目。
(5)点击“Target”选项卡,选择“Autonmatic”单选项,然后在AVD列表框中选择刚才创建的AVD,点击“Run”按钮,这样便可以运行项目了。
三俄罗斯方块需求分析
3.1游戏介绍
俄罗斯方块是家喻户晓的益智小游戏,它由俄罗斯人阿列克谢∙帕基特诺夫(AlexeyPazhitnov)在1984年6月利用空暇时间编写的游戏程序,故此得名。
俄罗斯方块的基本规则是移动、旋转和摆放游戏随机产生的各种方块,使之排列成完整的一行或多行并且消除得分。
它看似简单却变化无穷,俄罗斯方块上手极其简单,且游戏过程变化无穷,作为游戏本身很有魅力,但是要熟练掌握其中的操作和摆放技巧,难度却不低。
此软件给用户提供了一个展现自己高超技艺的场所,在这里,它不仅放松自己,还能感受到游戏中的乐趣。
游戏区域会从顶部不断落下7种下坠物的一种,游戏区域右上角有一个区域可以显示下一个下坠物的形状,玩家可以控制下坠物移动、旋转和一键到底,通过玩家的操作,下坠物在游戏区域以“摆积木”的形式出现。
下坠物在一行或多行堆满后就可以自动消除,消行后会得到相应的分数,如果当前下坠物堆积至窗口顶端,则游戏结束。
3.2游戏功能分析
先分析一下整个游戏的具体实现,首先,游戏有开始、切换界面、结束等操作接口,而在游戏过程中,随着玩家的按键,会出现下坠物的形态变化、下坠物快速下坠、摆放下坠物件、销毁填满的行、产生下一个方块等功能。
先分析游戏的特点,然后对这些功能一一进行细化,从而完成整个游戏的设计。
(1)游戏方块控制功能。
当玩家按下相应的操作键位时,通过条件判断,判断该操作是否可行,如果可行就执行相应的操作。
主要的操作有游戏方块的左移,右移,快速下降,旋转变形。
(2)方块的生成显示功能。
游戏中会有两个地方产生方块,一个是游戏区域上方会有方块落下,还有就是在屏幕右上角,也会产生一个方块,该方块为游戏区域下一个要产生的方块。
同时当游戏方块左右移动,下落,旋转变形时,要清除先前的游戏方块,还要求出被操作后的方块坐标,用新坐标重绘游戏方块。
(3)方块的摆放消行功能。
当方块落到底部的时候,通过条件判断,把方块摆放在屏幕底部并持续显示,当某行或者某几行被填满的时候,要把这几行消除,并且被消除的行数上方的方块整体下移。
(4)游戏分数统计功能。
记录游戏积分,每当有行被消除时,游戏积分会根据一次消除的行数而增加相应的分数。
(5)游戏速度更新功能。
当游戏积分达到某一条件时,系统将自动为玩家提高难度。
难度增加的时候,方块的下降速度会加快,增加游戏可玩性和趣味性。
(6)游戏结束控制功能。
通过判断,如果摆放的方块超过屏幕顶端的时候,则游戏结束,可以返回菜单重新开始游戏。
3.3方块及旋转变换需求分析
本游戏共有7种类型的方块,而每种类型方块还可以通过旋转变换成4种不同形态的方块进行摆放。
方块生成后可以将它们摆放在一个20*10的区域内,该区域可以看作是有许多个等面积小方格构成的区域,而这些区域的状态只有两种,被方块占据或空闲。
因此,对于整个游戏区域的空间是占据或空闲,可以用一位数来标识,对于7种方块和它们旋转后的形态我们可以用不同的标识进行标记。
对于旋转,游戏中所有方块都是按照顺时针旋转的规则进行的,而且在旋转过程中它们不会因为旋转而下降,总会保持在同一高度,但是在同一高度最多旋转三次,就会下降一格,任何下坠物经过一个旋转周期还会变回原型。
3.4游戏运行需求分析
游戏开始后会随机产生一个方块,显示在游戏区域,同时右上角也会随机产生一个新的方块,该方块为游戏区域下一个将要产生的方块,游戏区域不再随机生成方块。
当游戏区域的方块下落到底后,新的方块再次进入游戏区域,如此循环,直到游戏结束,这就是游戏的正常工作。
当用户进行一定的操作交互的时候,运行程序可以根据用户的操作指示对方块进行控制,而这些操作都是响应相关的按键而执行的。
按键盘上键,此事件实现下坠方块旋转操作,方块并非任何情况都能旋转,如果旋转后与已摆放好的方块有冲突或超出边界时,均不能发生旋转。
因此首先要判断是否有足够的空间进行旋转,然后决定是否旋转。
按键盘下键,此事件实现下坠方块一键到底操作,使方块迅速下降到游戏区域底部或者已经摆放好的方块之上。
按键盘左键,此事件实现下坠方块左移操作,首先要判断此方块是否能够发生左移,当越界或被其他摆放好的方块阻挡时,则不能左移。
按键盘右键,此事件实现下坠方块右移操作。
首先要判断此方块是否能够发生右移,当越界或被其他摆放好的方块阻挡时,则不能右移。
3.5消行和分数统计需求分析
当一个方块下落到游戏区域底部进行摆放后就要进行一次消行检测,检测是否有行被填满,检测时从刚摆放的方块最上面那一行开始往下检测,由于方块的形状限制可知每次最多只能消除四行,所以只需检测四行即可。
检测到一行被填满时该行上面的方块整体下移一行,包括空洞,然后继续检测下一行,直到四行都被检测完。
消行以后要统计游戏的积分,根据每次消除的行数t的不同而累加不同的积分,游戏积分通过公式score+=t*t*10来计算,消除一行得10分,消除两行得40分,消除三行得90分,消除四
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 俄罗斯方块 设计 实现