




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android塔防游戏应用开发设计方案1.1概述Android一词的本义指“机器人”,曾经是一家创立于旧金山的公司的名字,该公司于2005年8月份被Google收购,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件,并从此踏上了飞速发展的道路。经过这几年的发展,它已经发展成了一个平台、一个生态体系。现在Android在移动领域已经得到了广泛的应用。根据Google于2011年6月份公布的数字,现在每天激活的Android设备高达50万台,比5月份的数据增加了10万台!Google还透露目前已经与36家OEM厂商和215家运营商合作,共激活了超过1亿台Android设备。由于Android的良好的发展前景与应用开发的刚起步,基于Android的应用开发,特别是游戏开发是一片新的热土。本项目正是在Android平台上进行塔防游戏的开发,从Android做为受限设备的特点出发,塔防游戏对系统性能要求相对较低,也更适合与Android手机的触屏操作方式。塔防游戏也适于当前手持设备游戏的休闲娱乐的特点,更利于用户适应和喜爱。1.2行业发展现状当前Android游戏开发行业并不成熟,当前适合Android平台上的游戏引擎很少,没有一个主流的底层平台。Andriod手机游戏的开发呈现出百花齐放的态势,当前Android上的很多游戏都是从J2ME上移植过来的。但是由于Android游戏开发的广阔前景,行业发展也十分迅速,出现了很多优秀的作品。1.3研究的主要内容和前景与iPhone相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在手机上查看电子邮件、搜索网址和观看视频节目等,比iPhone等其他手机更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台。但其最震撼人心之处在于Android手机系统的开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。本项目的是基于Android的塔防游戏的开发,由于行业的不成熟,所以项目初期对Android的各个游戏引擎进行的测试与比较。其中包括的基于OpenGL以及2Dbox物理引擎的2D与3D支持的游戏引擎libGDX;基于libGDX进行更加优化与方便地封装的游戏引擎rokon;同样基于libGDX的游戏引擎LGame,相对之前的游戏引擎,这款引擎文档与样例丰富,在封装程度上也较为适合,所以本项目使用该引擎进行开发。从前景上看来,由于Android的良好势头和刚起步的游戏应用市场的需求,Android游戏开发将有十分广阔的发展。也随着智能手机,手持设备的普及,Android应用的开发将会有十分巨大的需求与广阔的市场。第2章总体设计2.1设计目的由于Android火热的发展势头,以及Android游戏的相对缺乏,基于Android的游戏开发将会有很好的市场前景。本设计的目标是在Android平台上设计出一款用户体验良好,性能稳定,充满休闲性和娱乐性的塔防游戏。为了缩短开发周期,本项目没有采取基于OpenGL图形库比较底层的libGDX游戏引擎,也避免其强大的桌面与Android系统的可移植行,2D与3D支持的干扰。本项目使用LGame游戏引擎,该引擎有更好的层次结构,有较丰富的文档资料。2.2 需求分析2.2.1需求分析过程问题识别:就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以求需求应该达到的标准。这些需求包括:功能需求(做什么),性能需求(要)3.2.1libGDX本游戏采用经典的塔防游戏模式,主要模块有炮塔,入侵者,地图,菜单,记录,流程。详见下面的思维导图:图1-总体设计思维导图其中炮塔分为子弹,跟踪,施毒,能量波四种类型,所有类型从父类Turret中继承。炮塔类包含有其对应的攻击方式的内部类,所有攻击方式内部类从父类Bullet继承。图2-Turrent思维导图入侵者大体分为快速,强壮,小巧类型,所有类型从父类Enemy中继承。图3-Enemy思维导图关卡由文本中布局,程序运行时加载入游戏,一些例举部分关卡名称。图4-Map思维导图菜单中盛放选择炮塔的按钮,升级按钮,出售按钮。图5-Menu思维导图记录显示功能包括得分,入侵者的攻击波数,拥有的金钱数。图6-Recorder思维导图流畅控制包括整个游戏的运行流程,包括选择地图关卡,游戏,结束,返回等界面流程。图7-Process思维导图3章详细设计3.1 开发环境IDE:Eclipse ADT, 三星android2.2真机测试OS:WinXP、Win7、Ubuntu11.043.2游戏引擎3.2.1libGDXLibgdx是一个跨平台的游戏开发库,用Java编写的,与有部分优化性能的JNI代码。它抽象了书面方式桌面和基于OpenGL Android游戏之间的差异。这使得原型和开发应用程序完全在桌面上,只需要6行代码,使其运行在Android。下面是关于LibGDX的一些测试。Colormesh = new Mesh(true, 3, 3, new VertexAttribute(Usage.Position, 3, a_position), new VertexAttribute(Usage.ColorPacked, 4, a_color); mesh.setVertices(new float -0.5f, -0.5f, 0, Color.toFloatBits(255, 0, 0, 255), 0.5f, -0.5f, 0, Color.toFloatBits(0, 255, 0, 255), 0, 0.5f, 0, Color.toFloatBits(0, 0, 255, 255) ); mesh.setIndices(new short 0, 1, 2 );在网格建设中,增加了一个颜色VertexAttribute。它包含4个部分组成(R,G,B,alpha),添加颜色信息的float数组。当我们运行应用程序时,它看起来应该像这样:图9-ligGDX ColorTexture要放在一个网格上的纹理,需要把我们的工作区中的图像文件,在我们的代码中引用该图像创建一个纹理对象,然后添加一个纹理VertexAttribute我们的网格。图9-ligGDX Textureprivate Mesh mesh;private Texture texture;Overridepublic void create() if (mesh = null) mesh = new Mesh(true, 3, 3, new VertexAttribute(Usage.Position, 3, a_position), new VertexAttribute(Usage.ColorPacked, 4, a_color), new VertexAttribute(Usage.TextureCoordinates, 2, a_texCoords); mesh.setVertices(new float -0.5f, -0.5f, 0, Color.toFloatBits(255, 0, 0, 255), 0, 1, 0.5f, -0.5f, 0, Color.toFloatBits(0, 255, 0, 255), 1, 1, 0, 0.5f, 0, Color.toFloatBits(0, 0, 255, 255), 0.5f, 0 ); mesh.setIndices(new short 0, 1, 2 ); FileHandle imageFileHandle = Gernal(data/badlogic.jpg); texture = new Texture(imageFileHandle); Overridepublic void render() Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); Gdx.graphics.getGL10().glEnable(GL10.GL_TEXTURE_2D); texture.bind(); mesh.render(GL10.GL_TRIANGLES, 0, 3);导入所需的类和运行MeshColorTextureDesktop应用程序。结果应该是这样的:图10-ligGDX Txture3.2.2RokonRokon是基于libGDX的Android游戏开发库,保留了桌面和Android平台的兼容性。Rokon将游戏组建封装为Actor,Scense,并提供对Texture的缓存处理的Texture队列。下面是Rokon实用Actor响应点击的例子:图11-Rokon Spirit3.2.2 LGameLGame是一款国人开发的Java游戏引擎,有Android及PC(J2SE)两个开发版本。其底层绘图器LGrpaphics封装有J2SE以及J2ME提供的全部Graphics API(PC版采用Graphics2D封装,Android版采用Canvas模拟实现),所以能够将J2SE或J2ME开发经验直接套用其中,两版本间主要代码能够相互移植。Android版内置有Admob接口,可以不必配置XML直接硬编码Admob广告信息。该引擎除了基本的音效、图形、物理、精灵等常用组件以外,也内置有Ioc、xml、http等常用Java组件的封装,代价是jar体积较为庞大,PC版已突破1.2MB,Android版有所简化也在500KB左右。此外,该引擎还内置有按照1:1实现的J2ME精灵类及相关组件,可以将绝大多数 J2ME游戏平移到Android或PC版中。同时也是是一个高通用性的游戏框架,作为支持Java桌面游戏以及网页游戏开发的全功能引擎,LGame无论对画面绘制、精灵碰撞、特效渲染、窗体组件,还是XML操作,文本数据库操作,HTTP操作,日志操作等都提供有完善的内部解决方案,避免了多包配置的繁琐与不便,同时也降低了用户的学习曲线。出于效率与程序体积两方面考虑,LGame中所有组件皆不依赖Swing,完全采取AWT绘制而成,因此它可以将自身的运行环境压缩到最小,一个压缩后不足4MB的精简JRE,已足够支持它的运行,也就是与RMXP或吉里吉里2的运行库大小相仿佛,但功能却更多。LGame内置有视频解码器,支持mp4视频文件播放(在LGame-Simple-0.3.0中将支持flv,在0.6-0.7版本中将以可选组件方式引入jmc支持,以争取可播放视频种类的最大化),内置音频解码器支持mid、mod、mp3、ogg、wav、au、aiff等。LGame结构分析LGame同样是基于LibGDX,封装了更加便利高效的组件。其中Activity是整个程序的入口,进行屏幕设置等基本操作。Screen是控制整个游戏界面的类,其中包含了游戏的流程控制等函数。Layer中封装了游戏场景,可以用于不知地图,菜单等。Actor是对游戏中的活动元素的封装。图12-LGame 框架结构3.3 基于LGame的详细设计在LGame的框架基础上,用Layer描述Map与Menu,由Actor继承生成Turrent与Enemy。整体示意图如下:图13-详细设计总览其中TowerDefenseActivity用于程序进入与基本的初始化图14-TowerDefenseActivityTowerDefenseScreen由Screen继承,处理游戏场景信息图15-TowerDefenseScreenMapLayer除了地图场景的布置,还包括对点击的响应等。图16-MapLayerMenuLayer中包含有Turrent和升级卖出等按钮。图17-MenuLayer由Actor派生出了Enemy和Turrent类,其中Turrent类包含响应的Bullet内部类。图18-Actor第4章软件编程设计4.1 模板总体设计图 19工程目录结构图图19-Actor图 20-包结构图4.2 主要模板功能实现4.2.1 地图选择界面布局代码图 21-地图选择界面布局代码4.2.2 游戏入口Activity关键代码图 21-游戏入口Activity关键代码4.2.3 Screen子类关键代码Screen的派生类TD用于游戏场景控制。图 22-Screen子类关键代码4.2.4 Enemy类关键代码Enemy是众多Enemy的父类。图 23-Enemy类关键代码Enemy的addLayer方法,将Enemy添加到指定的layer中。图 24- Enemy的addLayer方法4.2.5 Turret类关键代码Turret是众多Turret的父类。图 23-Turret类构造方法Turret的显示攻击范围的绘图方法。图 23-Turret的drawAttackRange方法4.2.6 MapLayer类关键代码MapLayer包含有地图布局代码。图 23-Turret类构造方法图 23-MapLayer类构造方法MapLayer中的downClick方法响应按键,实现添加Turrent和选中等功能。图 23-Turret类构造方法图 23-MapLayer的downClick方法总结本项目的主要内容是基于Android的塔防游戏应用开发。该游戏具有良好的用户体验,界面美观性能稳定。这款游戏采
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 入职安全规程培训课件
- 俱乐部饮水安全培训课件
- 狂犬病暴露后免疫球蛋白浸润注射护理查房
- 新质生产力光刻技术
- 绍兴流动广告管理办法
- 税收专家团队管理办法
- 2025年中医内科经络穴位定位考核答案及解析
- 2025年中央一号文件考试题及答案
- 分子云动力学-洞察及研究
- 出租车安全管理培训心得
- 2025年基层卫生人才能力提升培训(乡村医生理论培训考试题及答案)
- 2025年桥式起重机理论考试试题及答案
- 统编版新版三年级上册道德与法治教学计划及进度表
- 2026年高考第一轮复习数学第01讲 导数的概念及其意义、导数的运算(复习课件)
- 涪陵殡葬管理办法
- 2025年工会财务知识竞赛考试题库及参考答案
- 《火力发电企业电力监控系统商用密码应用技术要求》
- 中国刑事警察学院2024研究生考试真题(附答案)
- GB/T 13925-2025铸造高锰钢金相检验
- 2025年石家庄市市属国有企业招聘笔试考试试题(含答案)
- 外研版(2024)八年级上册英语Unit 1-Unit 6全册课文对照语法填空+课文原文+中文翻译
评论
0/150
提交评论