基于安卓平台记忆大爆炸游戏设计与实现毕业设计论文Word文档格式.docx
- 文档编号:4459988
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:38
- 大小:295.50KB
基于安卓平台记忆大爆炸游戏设计与实现毕业设计论文Word文档格式.docx
《基于安卓平台记忆大爆炸游戏设计与实现毕业设计论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于安卓平台记忆大爆炸游戏设计与实现毕业设计论文Word文档格式.docx(38页珍藏版)》请在冰点文库上搜索。
关键字:
安卓;
游戏;
动画;
DesignandimplementationofmemeorygameofthebigbangbasedontheAndroidplatform
Abstract
Alongwiththerapidpopularityofsmartphones,inordertomakesmartphoneuserscanquerytheservicesprovidedbytheInternetanytimeandanywhere,ahighlyefficientwayistothefunctionoftheapplicationsystemdevelopmentonthehandset,keepthecellphonecanbemobileandInternetaccesstotheWebsiteanddealwithallkindsofbusiness.Sosmartphoneapplicationdevelopmentinthe21stcenturyeraofmobileInternetisparticularlyimportant.
Thispaperputsforwardabasedonandroidmemorygametothebigbang,andthroughanalyzingthedevelopmentandimplementationofthegame,tounderstandtheworkingmechanismoftheandroidsystem.
Thisgameforeducationalclasses,itsmaincontentis"
welcomescreen"
"
menuselection"
gameSettings"
startgame"
gametutorial"
exitgame"
andothermodules,anddesignthevariousmodulesfunctionandimplementationapproach.Reducethemoduleandmodulecohesion.
Mainlytotheoverallanalysisanddesignofthegame,thespecificprocessingofinternalalgorithmandthedetailedcalculation.Usingthemultithreadingtechnology,touseandroidinthegameanimationprocesstointroducespecific
KeyWords:
android,game,animation
1.绪论
Android平台的框架是由操作系统、中间件、用户界面和应用软件组成。
底层的基础为Linux内核,android系统的效果图由C开发,并且只提供基本功能。
最上层为应用软件层,包括通讯软件程序等,是由各公司用java开发。
Google通过与各软、硬件开发商等建立合作伙伴的关系,希望能建立标准的、开放式的移动软件平台。
1.1研究意义
手机的发展也带动了手机游戏产业的快速发展。
在人们的生活中有许多的游戏,但不同的游戏会带给玩家不同的感受和生活理念。
游戏时人们日常生活的一个必不可少的娱乐项目,同时也带动了游戏相关产业市场的发展。
游戏平台经过从游戏机到电视游戏,然后到PC游戏,再到手机游戏,中间经历了很多技术的更新和变革。
因为智能手机的普及,基于手机平台的游戏也就拥有了巨大的市场空间,也因随着3G的开通和应用,手机游戏必然会迎来新的一轮游戏热潮。
Android系统平台作为当下最为火热的平台,本文拟设计一款游戏,以深入理解Android系统的工作机制。
Java语言作为一种跨平台的语言,可用于开发android应用,通过本文亦希望能够进一步的理解,掌握该语言。
此游戏是一款益智类的游戏,通过它深入理解游戏开发的过程,以及游戏开发的架构搭建。
理解安卓图形、动画、音频等的实现,理解游戏开发思路和实现技术
1.2研究状况与发展趋势
1997年出现了最早的手机游戏,经过了十几年的发展和变革,随着手机移动终端和移动通信网络的不断进步,手机游戏正在经历由简单到复杂的演变过程。
带动移动数据业务快速发展的手机娱乐服务,伴随着网络和移动终端性能的不断提高,呈现出快速增长势头[2]。
2010年,中国的手机游戏玩家规模已经突破了1.3亿,同比增长52.11%,同期的中国手机游戏的市场规模已达33亿。
2011年中国的手机游戏玩家规模已达1.62亿人。
伴随着智能手机的普及和游戏获取门槛的降低,以及手机游戏在产品类型和用户体验上都有很大的提高,未来中国手机游戏玩家的规模还有很大的上升空间。
2012年中国手机游戏玩家的规模已达2.13亿,中国手机的网络游戏市场规模已达4.42亿元。
随着手机宽带的不断提速,互联网从PC过渡到手机的趋势正在加快蔓延,这也为手机游戏业的兴起造就了新的商业机遇。
在移动互联网时代,开发者纷纷逃离营运商的束缚,转向利润较为丰厚的应用程序和游戏开发。
手机游戏软件在消费者中深受欢迎,如果想在未来手机应用程序开发中实现规模则需要加大手机游戏方面的开发力度。
手机游戏研发的重点是游戏情节和游戏界面。
游戏情节的创作依赖人的想象力和创造力。
行业竞争的激烈也导致雷同的不少游戏情节出现,这就要求创作人员不断发挥才能。
从最初按键操纵到后来的屏幕多点触控,已是一个趋势。
本文则是在多点触碰操作灵感下的一款小游戏设计。
目前的android手机游戏可以大致分为:
经营策略、动作竞技、休闲益智、网络模拟、体育竞技、射击冒险和角色扮演。
2.Android开发前的准备
2.1系统需求分析
在android智能手机平台上实现记忆大爆炸益智游戏。
玩家的目的是要记住礼物摆放的先后顺序,再根据记忆,根据原来的顺序依次点击屏幕上的方块以找到礼物,从而获取分数,在连击时间槽耗尽之前找到所有礼物将形成连击,达成特定条件可以解锁成就。
如果点击顺序错误,减少生命点数,当生命为零时游戏结束。
用以锻炼人的记忆能力。
实现各个目标的具体需求:
(1)游戏框架设计
(2)刚进入游戏时的欢迎界面设计与实现
(3)菜单主界面的设计与实现
(4)将菜单封装成一个对象,对菜单类的设计与实现
(5)对一些通用界面、通用的功能进行统一处理的工具类的设计与实现
(6)游戏进行时界面的设计与实现
(7)将物品封装成一个对象,对物品类的设计与实现
(8)对游戏中用到的状态机进行设计与实现
(9)数据存储数据库类的设计与实现
2.2对性能的规定
在对游戏各个界面的设计过程中,始终坚持清晰了然。
由于是运行在手机上面,而不是电脑上面,所以对游戏的性能要求就更加严格,内存的使用要尽量的低,很多游戏在一开始进入游戏后就将所有的资源加载到游戏中,这样在后面的游戏过程中就不需要加载而直接从内存中读取数据,但这样有些资源用不到的情况下也被加载到内存中,对手机内存的要求较高,而本游戏通过只加载需要的资源部分来降低手机内存的使用,这样就需要加载界面来加载需要的资源而没用到的资源则不加载。
如果采用android系统的绘图方式,会发现绘制的图片在移动时会发生晃动的情况,虽然可以通过提高帧率的方式来减缓晃动的幅度,但不能从根本问题上解决。
因为android的绘图是先将图片绘制到画布上,再一同绘制到屏幕上,所以为了解决由于移动而带来的晃动问题,我通过旋转画布的方式。
在原坐标系下可能沿着任意的方向移动,在新坐标系下则始终沿着坐标轴方向运动就不会出现晃动问题,而内存的开销方面相比之前并没有过多的开销。
2.3android开发环境
Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,要用的是开源的eclipse集成工具和安全的java语言。
当然只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的JavaJDK(java开发所需要的开发工具包)。
此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的AndroidSDK(Android平台开发所需要的开发工具包)。
同时,还需要在Eclipse安装ADT插件,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。
简言之,需要以下软件,才能搭建Android开发环境,从而进行Android游戏的开发。
(1)JavaJDK
(2)Eclipse
(3)AndroidSDK
(4)ADT插件
3.游戏界面设计
3.1欢迎界面设计
欢迎界面是对用户初进入游戏的友好界面和游戏信息设置。
界面设计如下:
图3.1欢迎界面设计框架
3.2菜单界面设计
菜单界面是对一些常用功能的一种集成,能引导用户更好地游戏,提高用户的体验度。
包括:
(1)“开始游戏”,点击跳转到游戏界面,开始游戏,
(2)“游戏帮助”,简单介绍一下此游戏的一些基本功能和玩法,
(3)“游戏关于”,对于本游戏的一些信息介绍,
(4)“游戏设置”,玩家可以选择是否打开背景音乐,
(5)“游戏成就”,在游戏过程中所获得的奖励,
(6)“退出”,点击退出游戏。
菜单界面设计具体如下:
图3.2菜单界面设计框架
3.3游戏进行中界面设计
为了更好地吸引用户,提高用户的体验度,合理的设置游戏的难度和情节是有必要的,在游戏的过程中适当的添加奖励机制和惩罚机制。
过关时根据用户的操作连击点数来判断其是否可获得分数和成就,如果未能完成任务,则生命将会减少。
图3.3游戏中界面设计框架
4.游戏实现
4.1框架的搭建
在编写游戏代码之前,必须要仔细的理顺思路,清晰的构建出整个游戏的框架,不然游戏开发到最后总是千头万绪,一旦出现bug就不知道该如何修改。
(1)借鉴MVC架构思想,将游戏分成四层,将视图(即界面展示)、逻辑(画面的移动)、数据保存和统一工具类分开来开发,这样如果视图出问题了(即界面绘制的位置有问题),只需要更改视图层而不需要更改逻辑层和数据库层。
每一个界面类中都有paint绘图方法和run逻辑处理方法,将视图和逻辑分开以便于维护和修改,使得代码的可维护性和二次开发容易度提高。
(2)游戏状态机的实现方式是通过变量来控制当前游戏状态,在游戏主线程中只更新绘制当前游戏状态下的内容。
各界面的跳转是通过状态机来进行的。
例如:
switch(GS.gameStatus){
caseGS.GAME_INTO:
//游戏
paintGameInto(g,p);
break;
caseGS.GAME_SUC:
//过关
paintGameSuc(g,p);
caseGS.GAME_ERR:
//失败
paintGameERR(g,p);
caseGS.GAME_PAUSE:
//暂停
}
通过更改GS.gameStatus来切换不同的界面,而其他状态下的逻辑将不执行、界面将不绘制,通过状态机能够很方便的改变界面,使得代码也比较清晰,可读性较高。
(3)保存数据,在游戏中需要长期的存储一些游戏生成的数据,例如玩家对游戏背景音乐的开关设置,游戏过程中所获得的成就和分数,剩余生命值,所使用的特定功能次数等,都需要保存。
首先创建一个类MyHelper,在此类中声明数据库的基本信息,再通过DB类建立、更新和打开数据库。
对数据库进行增、删、改、查等操作。
(4)工具类的目的是将一些常用的方法封装在一个类中,这些方法不依赖于任何界面,并能在各个界面通用,
①GS类:
将各个界面所用到的状态变量进行统一管理。
②PS类:
系统配置参数管理,包括系统配置固定参数、字体、声音、图片和数据库。
③GameData类:
游戏中的一些数据管理,包括点阵字渐变效果和文本性文字单色等。
④LayerData类:
对于每关的关卡数据进行管理,当前所在的关卡,总关卡,该关分数,总分数和当前关的成就等。
⑤UIB类:
模拟android按钮,检测矩形碰撞,看手指是否点击了该按钮。
StrData类:
各界面中用到的字符串。
⑥Sound类:
背景音乐和音效的管理。
音乐的播放、音乐停止以及对于音乐资源的加载和释放。
图4.1.1视图层框架
图4.1.2逻辑层框架
图4.1.3数据库层框架
图4.1.4工具类框架
4.2欢迎界面实现
画面的动态切换,当第一张图片显示的时间达到定值时通过更改状态机来切换下一张图片的显示。
switch(logoStatus){
caseLOGO_PIC:
if(logoTimeo==0){
logoTimeo=T.getTimec();
}elseif(T.getTimec()-logoTimeo>
=logoDelay){
logoNumc++;
if(logoNumc>
=logoNumo){
logoNumc=0;
setLogoStatus(LOGO_SOUND);
}
caseLOGO_SOUND:
break;
4.3菜单界面实现
当用户进入此界面时,根据用户的需要来查看不同的功能,帮助用户了解游戏的操作。
4.3.1菜单主界面
图4.3.1菜单主界面
(1).将图中的各个菜单封装成对象为Menu,此对象拥有的属性有:
绘制时的x,y坐标;
所代表的图片下标bitmapIndex;
所代表的的菜单下标menuIndex;
动画移动实现控制isMoveUp;
(2).菜单动画逻辑处理
控制菜单上下移动:
通过控制菜单对象中的y坐标和动画控制属性,在线程中不停的刷新,来控制其上下摆动。
//控制菜单上下移动
for(i=0;
i<
moveMenuArrayX.length;
i++){
if(moveMenuArrayX[i].getY()>
menuDefaultY+5){
moveMenuArrayX[i].setMoveUp(false);
}elseif(moveMenuArrayX[i].getY()<
menuDefaultY-5){
moveMenuArrayX[i].setMoveUp(true);
}
if(moveMenuArrayX[i].isMoveUp()){
moveMenuArrayX[i].setY(moveMenuArrayX[i].getY()+1);
}else{
moveMenuArrayX[i].setY(moveMenuArrayX[i].getY()-1);
}
控制菜单左右移动:
当点击图中向左向右方向时,菜单相应的平滑的向左向右移动。
//控制菜单向左移动
if(isMoveLeft){
if(menuDx>
-150*clickLeftNum){
menuDx-=10;
curMenuDY_n-=3;
curMenuDY_c+=3;
arrowDx-=25;
for(i=0;
if(moveMenuArrayX[i].getX()<
-20){
moveMenuArrayX[i].setX(ShareCtrl.sc.maxXInArray(moveMenuArrayX)+150);
}
moveMenuArrayX[i].setX(moveMenuArrayX[i].getX()-10);
}
}else{
InitMoveLeft();
//控制菜单向右移动
if(isMoveRight){
if(menuDx<
150*clickRightNum){
menuDx+=10;
arrowDx+=25;
if(moveMenuArrayX[i].getX()>
w_fixed+50){
moveMenuArrayX[i].setX(ShareCtrl.sc.minXInArray(moveMenuArrayX)-150);
moveMenuArrayX[i].setX(moveMenuArrayX[i].getX()+10);
InitMoveRight();
4.3.2游戏帮助界面
图4.3.2游戏帮助界面
当用户不知如何玩此游戏时,可通过该帮助界面了解到此游戏的玩法和规则,点击帮助菜单,将会提示我们应该如何进行操作。
文字滚动动画逻辑处理:
使用Android系统的截图方法,固然可以解决滚动动画,但直接使用系统级的方法总是那样的繁琐,自定义一个类工具类ToolPic,里面封装一个方法paintRegionImage方法用于处理图片的截取和显示。
PublicvoidpaintRegionImage(Canvasg,Paintp,Bitmapb,intsrcx,intsrcy,intsrcw,intsrch,intabsx,intabsy,intanchor){
g.save();
src.set(srcx,srcy,srcx+srcw,srcy+srch);
switch(anchor){
caseANCHOR_CHV:
//中心点绘制
dst.set(absx-srcw/2,absy-srch/2,absx+srcw/2,absy+srch/2);
break;
caseANCHOR_LU:
//左上角绘制
dst.set(absx,absy,absx+srcw,absy+srch);
……//其他
g.drawBitmap(b,src,dst,p);
g.restore();
帮助文字从下往上滚动逻辑实现,通过控制截取的起始坐标来实现滚动。
publicvoidrunHelp(){
helpTextStartY++;
if(helpTextStartY>
=581){
helpTextStartY=-305;
4.3.3游戏关于界面
图4.3.3游戏关于界面
关于界面是对游戏的一些基本信息做一个简要说明。
4.3.4游戏设置界面
图4.3.4游戏设置界面
设置界面对于游戏的背景声音进行设置。
4.3.5游戏成就界面
图4.3.5游戏成就界面
当在游戏中连击数达到一定时就能获得奖励成就。
成就界面翻页动画的实现:
翻书的效果可以看成是由一定的动作帧组成,每帧的大小相同。
这些帧在线程中不断地刷新,就能形成连续的画面。
PageTurningIndex记录翻页的哪一帧,总共有6帧。
privatevoidrunAchieve(){
//向左翻页或向右翻页逻辑处理
if(isPageMoveLeft||isPageMoveRight){
pageTurningIndex++;
if(pageTurningIndex==6){
pageTurningIndex=-1;
isPageMoveLeft=false;
isPageMoveRight=false;
翻页绘制实现:
/**
*绘制翻页动画isTransform:
是否将图片变为镜像图片
*/
privatevoidpaintTurningPage(Canvasg,Paintp,booleanisTransform){
switch(pageTurningIndex){
case0:
paintPage(g,p,Pic.imageSrcs(36),677,349,T.ANCHOR_CHV,isTransform);
case1:
paintPage(g,p,Pic.imageSrcs(37),656,328,T.ANCHOR_CHV,isTransform);
case
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 平台 记忆 大爆炸 游戏 设计 实现 毕业设计 论文