




已阅读5页,还剩82页未读, 继续免费阅读
(计算机软件与理论专业论文)基于java+me平台2d手机游戏引擎设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南交通大学硕士研究生学位论文第1 页 摘要 在手机附加功能中,手机游戏是最具有吸引力和经济价值的功能之一。但 手机游戏的开发受手机硬件资源的制约,开发效率低,质量不能得到有效保证。 如何快速、高效并低成本生产出高质量的手机游戏,成为各个手机游戏开发商 共同追逐的目标。游戏引擎开发是实现这个目标的有效途径。 论文论述了如何在支持j a v am e 的手机上设计并实现2 d 游戏引擎。首先对 比了几种流行的手机计算平台,特别是对j a v am e 开发平台及其对手机游戏开 发的支撑技术进行了深入分析,证明了其对手机游戏引擎开发支持能力。然后 深入分析了手机游戏的特点、手机游戏的功能需求、手机游戏引擎应该扮演的 角色,抽象出了手机游戏软件的软件架构、手机游戏引擎在架构中的位置,以 及手机游戏引擎的功能构成及功能分类。最后详细论述了手机游戏引擎中主要 模块的实现原理和实现技术。 论文在手机游戏引擎实现方面,着重探讨了动画管理和碰撞检测这两个模 块的实现。在动画管理上采取了分层策略来处理动画,以整体向局部的顺序, 依次称为:动画、帧、模块。这样处理不仅能够方便的管理动画资源,同时也 能够最大程度地重复利用已有的资源。在碰撞检测方面,论文借鉴采用了换基 底的方式,把在标准直角坐标系中的椭圆与直线相交判断问题,转换成单位圆 与直线相交判断问题,减少了判断过程的复杂度。 关键词:手机游戏;j a v am e ;碰撞检测;游戏引擎 西南交通大学硕士研究生学位论文第1 i 页 a b s t r a c t t h em o b i l ep h o n eg a m ei so n eo ft h em o s ta t t r a c t i v ea n dv a l u a b l ef u n c t i o na m o n g t h ep h o n eh a s h o w e v e r , t h ed e v e l o p m e n to fm o b i l ep h o n eg a m ei sc o n s t r a i n t e db y t h em o b i l ep h o n e sh a r d w a r er e s o u r c ,t h et h eq u a l i t yc a nn o tb ee f f e c t i v e l y g u a r a n t e e d h o wd e v e l o pt h el o w c o s ta n dh i g h - q u a l i t ym o b i l ep h o n eg a m ef a s ta n d e f f i c i e n th a sb e c o m eac a 3 m m o np u r s u i to ft h eg o a lt oa l ld e v e l o p e r s g a m ee n g i n e d e v e l o p m e n ti sa l le f f e c t i v ew a yt oa c h i e v et h i sg o a l t h i st h e s i sp r e s e n t sh o wt od e s i g na n di m p l e m e n ta2 dg a m ee n g i n eb a s e do nt h e m o b i l ep h o n e sw h i c hs u p p o r tj a v am ep l a t f o r m a tf i r s t ,i ta n a l y z e ss o m ep o p u l a r m o b i l ep h o n ec o m p u t a t i o np l a t f o r mc o m p a r i n gw i t he a c ho t h e r , e s p e c i a l l yt h e s u p p o r tt e c h n o l o g yf o rm o b i l ep h o n eg a m ed e v e l o p m e n to fj a v am e ,a n dp r o v e st h e s u p p o r tc a p a b i l i t yo f m o b i l ep h o n eg a m ee n g i n e t h e ni ta n a l y z e st h ec h a r a c t e r i s t i c o fm o b i l ep h o n eg a m e ,t h ef u n c t i o nr e q u i r e m e n to fm o b i l ep h o n eg a m e ,t h er o l eo f m o b i l ep h o n eg a m ee n g i n ea n da b s t r a c t st h es t r u c t u r eo fm o b i l ep h o n eg a m e ,t h e p o s i t i o no fg a m ee n g i n ei nt h es t r u c t u r ea n dt h es t r u c t u r ea n dc l a s s i f i c a t i o no fm o b i l e p h o n eg a m ee n g i n e a tl a s t ,i tp r e s e n t st h ep r i n c i p l ea n di m p l e m e n t st e c h o n o l g yo f m o b i l ep h o n eg a m e e n g i n e sm o d u l e s t h i st h e s i sf o c u s e so nt h ed e t a i lo fa n i m a t i o nm a n a g e m e n ta n dc o l l i s i o nd e t e c t i o n i tu s e sm u l t i - l a y e r sm e t h o dt os o l v ea n i m a t i o nm a n a g e m e n ta n dn a m e st h e m a n i m a t i o n ,f r a m ea n dm o d u l ef r o mt o pl a y e rt ol o wl a y e r t h i si sf i tt om a n a g e a n i m a t i o nr e c o u r s e sa n dr e u s et h er e c o u r s e sa sw i d ea sp o s s i b l e i nc o l l i s i o n d e t e c t i o n ,t h et r a n s f o r mo fb a s ei su s e dt os i m p l i f yt h ep r o c e s s i n gs u c ha sm a k i n gt h e i n t e r s e c t i o nj u d g m e n to fe l l i p s ea n dl i n ei n t ot h ei n t e r s e c t i o nj u d g m e n to fc i r c l ea n d l i n ew h i c hr e d u c e st h ec o m p l e x i t yo fj u d g m e n tp r o c e s s i n g k e y w o r d s :m o b i l ep h o n eg a m e ;j a v am e ;c o l l i s i o nd e t e c t i o n ;g a m ee n g i n e 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保 留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 本人授权西南交通大学可以将本论文的全部或部分内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复印手段保存和汇编本学位论文。 本学位论文属于 1 保密口,在年解密后适用本授权书; 2 不保密西使用本授权书。 ( 请在以上方框内打“ ) 学位论文作者签名:鲁周屋 日期:) 叼。娘z 7 指导老师张f 习嘶 日期:乒一i ) 丫一椤 西南交通大学学位论文创新性声明 本人郑重声明:所呈交的学位论文,是在导师指导下独立进行研究工作所得 的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经 发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中作 了明确的说明。本人完全意识到本声明的法律结果由本人承担。 本学位论文的主要创新点如下: 1 提出手机游戏软件分层模型。以分层模型为依据,对手机游戏引擎进行分 析,明确手机游戏引擎各个功能模块之间的关系,增加手机游戏引擎各个模块之 间的可替性。 2 用代码实现了改进的基于椭圆空间的2 d 碰撞检测算法。在提高碰撞检测精 度的前提下,利用离线计算的方法,不增加碰撞检测的实时计算时间。 学位论文作者签名:番舷 日期:卅、铱门 西南交通大学硕士研究生学位论文第1 页 1 1 引言 第1 章绪论 随着通信技术的发展、通讯器材生产成本的下降和国民的收入的提高,使 用手机的人数正在不断的增长。同时手机硬件技术的提高,使得手机不仅具有 基本的通话功能,还具有了多媒体处理、数据网络连接、电子商务和数据处理 的功能。在众多的附加功能当中,手机游戏是最受用户关注的功能之一。手机 游戏行业在最近几年迅速发展,成为了一个具有巨大发展潜力的产业。在巨大 的产业发展前景的吸引之下,手机游戏开发的行业中不断涌现出新的开发商。 但这些开发商规模大小各异,开发能力也是良莠不齐,开发出来的手机游戏产 品更是千差万别。在这个竞争激烈的行业里,如何快速、高效并低成本生产出 高质量的手机游戏,成为各个手机游戏开发商共同追逐的目标。 利用手机游戏引擎开发是提高手机游戏质量的方法。通过手机游戏引擎这 个中间件加速软件开发速度,保证游戏移植的平滑度,达到提高手机游戏项目 成功率的方法,得到了越来越多手机游戏开发商的认同,并付诸于实际项目开 发过程中。游戏引擎运用抽象和隐藏的方法,把各种软硬件差异性屏蔽在其内 部处理细节中,使得游戏逻辑和游戏实现分开,减少两者之间的相关性,使得 在游戏的开发中把着重点放到游戏的内容设计上去。 1 。2 手机游戏产业发展动态 自摩托罗拉推出世界上第一台实用便携式手机以来,手机发展已经经过三 个阶段。第一代模拟制式手机( 1 g ) 只能进行语音通话;第二代g s m 、c d m a 等数字制式手机( 2 g ) 增加了接收数据的功能,如接受电子邮件或网页;第三 代数字通信( 3 g ) 与前两代的主要区别是在传输声音和数据的速度上的提升,它能 够要能在全球范围内更好地实现无缝漫游,并处理图像、音乐、视频流等多种 媒体形式,提供包括网页浏览、电话会议、电子商务等多种信息服务,与第二 代系统兼容【4 引。可以看到手机由开始的单纯的进行语音通信的终端,逐渐发展 西南交通大学硕士研究生学位论文第2 页 成为一个能处理多种格式数据,摆脱传统桌面计算移动约束的普适计算工具【1 1 。 在众多手机新功能中,手机游戏是一项很有前景的功能。手机上的游戏摆脱游 戏控制台( 如p s 3 、x b o x 3 6 0 等) 或者个人电脑的束缚,使游戏能够随时随地进 行,最大程度发挥了游戏娱乐于人的本质特点。 手机游戏并不是近年才出现的事物。早在上世纪九十年代,某些手机就出 现了手机游戏。如“俄罗斯方块一,“贪吃蛇 等经典游戏。但是这些游戏是事 先固化在手机硬件中的,并不能按照手机用户的需求,自行更换游戏;而且这 些游戏也只是由很简单的单色几何图形组成。即使如此,它的出现还是吸引了 一大批用户。随着手机硬件条件的提升和新的手机软件开发规范出台,手机上 涌现了各种类型的新型游戏给这个领域带来焕然一新的局面。这些游戏拥有艳 丽的游戏画面,丰富的游戏情节和不同的游戏难度。同时手机游戏也从手机生 产商单独开发,转到由专门的手机游戏开发商单独开发。这样不仅提高了手机 游戏的专业化水平,而且同一个手机游戏可以同时出现在不同商家生产的不同 系列的手机上,让尽量多的手机用户享受到同一款游戏带来的乐趣。 在手机游戏业务的发展进程中,运营商扮演了关键的角色。运营商不仅拥 有网络资源,而且拥有计费渠道。运营商在手机游戏领域的先天优势把运营商 推到了手机游戏市场启动者的位置,如果运营商不投入,没有制订推动手机游 戏的相关策略,手机游戏市场就很难被启动起来。日韩手机游戏业务获得的长 足发展,是与运营商的积极推动分不开的。通信网络是网络手机游戏的载体, 对于基于浏览器类联网的游戏而言,网络的带宽和速率直接影响到游戏的质量。 如欧洲早期的g s m 网络提供w a p 服务,因为速度太慢而难以吸引用户;日本 的i m o d e l 4 3 j 游戏则以高速的服务迅速促进了移动游戏市场的发展。随着3 g 商 用的不断推进,手机游戏的应用环境也逐渐成熟起来,网络的升级也促使移动 运营商寻找一种能够产生大数据流量的应用,而这些因素都推动了手机游戏市 场的发展l 引。 手机软件开发平台协议和标准的推陈出新有力地推动了手机游戏技术的迅 速发展。除了j a v am e 和b r e w 外,手机游戏技术平台还有s y m b i a n 等。目前 j a v am e 获得了移动运营商和终端制造商的广泛支持,已经成为世界游戏产业事 实的主流技术标准。 在由中国科学院撰写的( 2 0 0 8 高技术发展报告中指出【4 】,基于移动支付 西南交通大学硕士研究生学位论文第3 页 的支持,移动电子商务将提供个人信息服务、银行业务、交易、购物、娱乐等, 移动电子商务时代已悄然到来,预计到2 0 1 0 年中国手机游戏市场将达2 0 0 亿元 人民币。中国电子商务在经历了2 0 0 2 年到2 0 0 4 年间的调整后,从2 0 0 5 年开始, 逐渐步入务实发展的轨道,2 0 0 6 年到2 0 0 7 年进入快速发展的阶段。而同时,手 机用户人数还在不断地增长。以中国为例,2 0 0 7 年全国移动电话用户新增8 6 2 2 8 万户,达到5 4 7 2 8 6 万户。2 0 0 7 年是移动电话用户增长最多的一年,其中1 0 月 份新增移动电话用户8 1 3 2 万户,刷新单月增长纪录。移动电话普及率达到4 1 6 部百人1 2 j 。未来两三年中,现有的5 亿中国手机用户的1 3 都将升级到可玩游 戏的中高端手机。预计到2 0 1 0 年中国手机游戏的用户将达到1 - 5 亿至2 亿入。 以人均年消费1 2 0 元计算,每年的手机游戏市场规模将突破2 0 0 亿元人民币。 1 3 手机游戏开发现状分析 1 3 1 手机游戏开发的特殊性 手机游戏开发同其它软件开发相比,有自己的特殊性。主要表现为【3 7 l : 1 手机终端种类庞大,功能高低不一。 国内外的手机生产商,每年都会发布一系列新款手机型号。同时历年的手 机型号也在销售市场和用户市场流通,这就使得手机的型号种类不断扩大。并 且手机的功能随着型号的不同而存在着巨大的差异,能够在某台手机上运行的 游戏,却不一定能够在另外的手机上运行。 2 硬件条件限制大,特别需要性能优化。 由于手机的体积大小限制和硬件制造能力的极限,手机的硬件性能不能够 与桌面计算机相提并论。对于游戏这种对时间和空间要求高的软件来说,任何 的硬件资源都是十分宝贵的。为了能够最大化的表现出游戏的内容,需要在代 码、资源、算法等方面对软件进行优化。 3 开发团队规模不一,能力差别大。 在国外,电子游戏产业有着几十年的发展基础,又借着先进入手机游戏市 场的契机,已经形成了一大批优秀的手机游戏开发公司。如法国的g a m e l o f l , 美国的j a m d a t ( 已被e a 收购) 等。特别日本这个游戏大国,许多游戏开发商都 西南交通大学硕士研究生学位论文第4 页 有自己的手机游戏开发部门,使得他们无论在数量上还是质量上都保持着全球 领先的位置。这些公司基本上都有一套完善的手机游戏开发流程,拥有自己的 开发和测试平台【5 1 。相比之下,国内的手机游戏开发是很落后的。无论在开发人 员的规模上,还是在产品的质量上都还处于低级阶段。 基于上述原因,在手机游戏开发过程中,一个游戏常常要分成若干个不同 的代码版本和资源版本,使得游戏能够运行在不同的开发平台上。有时候即使 在同一个开发平台上,由于手机型号的不同,也要针对特殊的手机型号增加额 外的版本。再者开发人员水平的不同,决定了他们生产出来的代码质量有差别。 1 3 2 手机游戏引擎发展现状 在手机游戏开发工程中,采用手机游戏引擎来管理不同的资源版本、配置 手机开发参数和屏蔽不同手机平台的差异,增加开发效率。 在国外,手机游戏引擎已经发展到比较成熟的阶段。在手机游戏引擎的帮 助下,手机游戏开发人员可以从繁重的游戏框架代码和移植代码的编写工作中 解脱出来,把工作重心放到如何优化代码上,从而生产出更优秀的手机游戏。 在国内,手机游戏引擎比前几年有较大的发展,摆脱了每次项目重新设计 和编码的阶段,但是在游戏性能和支持的手机平台数量方面与国外存在较大的 差距。这是由于具体条件决定的,具体表现在以下几个方面。 1 发展时间的不同。国外的电子娱乐发展比较早,在上个世纪八十年代,各 种电子娱乐就已经是国民日常娱乐生活一部分,具有广大的社会基础。由于手 机最初是国外的产品,手机游戏同样出现早。而在国内在上个世纪九十年代, 电子娱乐还只是在发达城市少数生活富裕人士的专利。到了本世纪初,才发展 成为一项产业。在这方面国外有时间上的发展优势。 2 社会文化的差异。国外对待电子娱乐就如同对同一般出版物相同,除了法 律和民俗所禁止的内容,其它的一概不予限制。而在国内,游戏天生就与传统 的思想相背,“玩物丧志是这种思想最极端的表现。电子娱乐一向被传统教育 家视为“精神鸦片 而给予打击。到本世纪初,由于通信技术的发展和国民整 体素质的提高,电子娱乐才得到了正常的发展。缺少社会文化的支持,使得国 内从事这方面的人才比国外整体要少,而且职业素质上也要低。 3 公司规模的不同。国外的手机游戏开发公司同其它信息产业公司一样,具 西南交通大学硕士研究生学位论文第5 页 有规范的企业流程,开发分工和销售渠道。手机游戏工程成功和失败的经验可 以积累,并能够有自身的知识产权。而国内的手机游戏开发公司起步晚,规模 小,人员不稳定。无论在手机游戏的设计上还是在手机游戏开发的过程中,个 别程序员的能力和阅历成了项目成功的重要因数。这就使得国内手机游戏公司 的技术不容易积累,而一个没有技术积累的公司是生存不了多久的。 在国内,已经存在不少关于手机游戏引擎的相关文献。内容包括对手机游 戏开发期间的开发文档管理1 3 2 j 1 3 3 j ;手机游戏中动画的管理【3 3 】;手机游戏中的图 像绘制提出了特别优化方法【蚓:以及对手机游戏中内存管型圳。这些文献的内 容主要是从开发的实际需求出发,针对手机游戏引擎的具体功能做了比较深入 的研究,但是并没有提出一个高层的、总体的架构性观点。 本文对手机游戏引擎的架构进行尝试性研究,提出了手机游戏软件分层系 统参考模型,并指明手机游戏引擎在模型中所占的位置。为今后国内手机游戏 引擎的技术探讨尽绵薄之力。 1 4 题目来源及研究内容 g a m e l o f t 公司是世界领先的手机、p d a 、数字电视及电视游戏软件开发商、 出版商。目前已经在1 0 个国家设有分支机构:包括中国、美国、加拿大、法国、 英国、德国、意大利、西班牙和罗马尼亚。g a m e l o f t 在其相关领域的实力在欧 洲排名第一,在全球排名第二。笔者在该公司中国成都子公司实习期间,亲身 参与了两个j a v am e 手机游戏项目:“p u bm a n i a 和“l a sv e g a sn i g h t s 的实际 开发工作,主要专注于手机游戏引擎在不同手机型号平台之间的适配和移植, 取得了宝贵的实际开发经验,并激发了笔者对手机游戏引擎研究的兴趣。 j a v am e 是j a v a 家族的一员,它同样拥有标准j a v a 的“一次编写,到处运 行刀的特点。同时,j a v am e 得到了绝大多数的手机的支持,是当今手机游戏开 发的主要支撑平台。手机游戏引擎基于j a v am e 平台开发已经成为一种潮流。 论文题目“基于j a v am e 平台2 d 手机游戏引擎的设计和实现 ,正是基于 笔者的经历、经验、兴趣和手机游戏发展趋势的驱动,对手机游戏引擎研究的 常尝试性研究。 西南交通大学硕士研究生学位论文第6 页 论文研究内容如下: 1 手机游戏引擎在手机游戏软件系统架构中位置及作用研究。手机游戏引 擎狭义上是一组控制逻辑代码的集合,广义上是一组加快手机游戏开发的中间 件软件。在它的协调下,游戏中的图像、声音、情节等资源相互交替表示,从 而表现出游戏设计者所要表达的游戏内容。同时,它对开发过程中的相同部分 代码和资源得到有效的管理,使得代码和资源可以得到重复的利用,从而加快 游戏开发的进度、减少开发的成本。 2 从分层的角度出发来分析游戏引擎的功能。游戏引擎所要解决的问题,从 开发者的角度来说主要有两个方面:一是游戏数据之间格式的差异问题。二是 游戏内容和游戏数据之间的可见性问题。前者要求不同的数据格式在游戏引擎 中要以相同的形式进行处理,这样就使得数据的制作者能够按照自己的熟悉的 环境来进行创作,而把具体的格式转换的细节交给游戏引擎来处理。后者要求 游戏内容对游戏数据透明,也就是游戏设计者可以不清楚游戏数据是如何表示 的,以及它们之间是如何协调的运行的,而只要按照游戏引擎的要求把各种资 源按照游戏设计来进行组织,就可以创造出新的游戏产品。 3 探讨游戏引擎中的资源管理部分的目的、设计和实现。资源管理部分是游 戏引擎中的基础部分,负责各种游戏硬件资源( 内存、键盘) 和软件资源( 图片、 声音) 的管理。对资源管理部分的设计所要遵循的原则是:屏蔽具体资源在结构 上和实现方法上的差异,以统一的接口来对资源进行管理。 4 探讨游戏引擎中的碰撞系统的目的、设计和实现。在包含种类繁多、功能 负责的游戏引擎高级部分中,碰撞系统是模拟现实碰撞现象的软件支持。它负 责在游戏中,各个对象之间的距离检测、判断和反应。通常碰撞系统采用矩形 或者圆形来限定物体的范围。但前者接近物体轮廓而计算步骤多;后者计算容 易却容易出现误判。而本文采用椭圆形来限定物体是对上面两种方法的综合, 它拥有两种方法优点,同时又尽量避免了两种方法的缺点。并把算法以j a v a 语 言实现。 1 5 论文结构安排 本文第一章介绍了手机的发展历史概况及其市场分析,同时指出了项目的 西南交通大学硕士研究生学位论文第7 页 内容和范围。 第二章介绍了各种在手机上的开发平台。在b r e w 、s y m b i a n 和j a v am e 三种开发平台之中,j a v am e 以其广泛的支持和良好的移植和重用特性成为主流 开发平台。简要地介绍了j a v am e 的特点。 第三章首先简单地对游戏进行了分类介绍和游戏程序结构的特点。接着从 游戏开发者的需求角度,引出了游戏引擎的定义、作用和目标。提出手机游戏 软件分层系统参考模型,以此来详细解释游戏引擎在整个开发过程中所处的地 位。然后针对手机游戏开发过程中的特殊性,提出了手机游戏引擎的特点。 第四章详细介绍了手机游戏引擎各个模块,在实际项目中所要解决的问题。 在本文中,这些模块包括:内存管理、声音管理、键盘管理、读入管理、字符 管理、背景管理、动画渲染管理和碰撞系统。 第五章按照第四章的模块介绍顺序,显示如何用j a v a 代码来实现这些模块 的功能。 西南交通大学硕士研究生学位论文第8 页 第2 章j a v am e 手机游戏开发技术综述 2 1 手机开发平台概况 在手机上进行程序开发的平台很多,但是只有少数平台得到了推广。b r e w 、 s y m b i a n 和j a v am e 占据了绝大多数的市场份额【6 1 。如图2 - 1 所示。 图2 - 1 手机应用开发平台市场份额矩形图 j a v am e 是当前最流行的手机应用开发平台,它的两个具体版本m i d p i 和 m d p 2 占据了7 0 以上的市场份额。目前中国移动的百宝箱平台中的游戏多为 j a v am e 游戏。其优点是开发速度快、周期短、支持手机多、开发资源丰富。其 缺点是各厂商s d k 不完全兼容,同一厂商的不同型号手机不兼容,限制比较多。 b r e w 就是无线二进制运行环境( b i n a r yr u n t i m ee n v i r o n m e n tf o rw i r e l e s s ) 的简称。是美国高通公司2 0 0 1 年推出的基于c d m a 网络“无线互联网发射平台” 上增值业务开发运行的基本平台。目前中国联通的神奇宝典平台中的游戏多为 b r e w 游戏。b r e w 提供的功能环境就好像p c 机上的操作系统一样,可以通 过服务提供商下载指定类型的应用程序或游戏来使用。其优点是a p i 功能较强, 速度较快。其缺点是目前只支持c ,开发较j a v am e 稍难,支持手机不多。 s y m b i a no s 由摩托罗拉、西门子、诺基亚等几家大型移动通讯设备商共同 出资组建的一个合资公司专门研发手机操作系统。s y m b i a n 操作系统在智能移动 终端上拥有强大的应用程序以及通信能力。s y m b i a n 认为无线通讯装置除了要提 西南交通大学硕士研究生学位论文第9 页 供声音沟通的功能外,同时也应具有其它种沟通方式,如触笔、键盘等。此外, s y m b i a n 操作系统在扩展性方面为制造商预留了多种接口。其优点是独立操作系 统,功能强大,支持几乎所有新功能,是未来手机的趋势。其缺点是开发难度 很大,成本相对较高,各种资源较少。 2 2j a v am e 手机软件开发平台 2 2 1j a v am e 概述 j a v a 技术是s u n 公司提供的一套通用计算平台。目前主要包括j a v a 平台标 准版( j a v ap l a t f o r ms t a n d a r de d i t i o n ,j a v as e ) 、j a v a 平台企业版( j a v ap l a t f o r m e n t e r p r i s ee d i t i o n , j a v ae e ) 、j a v a 平台微型版( j a v ap l a t f q l r mm i c r oe d i t i o n j a v a m e ) 和j a v a 卡平台( j a v ac a r d ) 。j a v as e 的目标是个人计算机和服务器的应用; j a v ae e 的目标是企业计算机和服务器的应用;j a v am e 的目标是便携式计算机 和嵌入式设备的应用【8 】【引。 j a v a 技术的主要特点是跨平台。只要编写一次,就可以在所有支持j a v a 的 机器上运行,这是与其结构密切相关的。j a v a 主要由三部分组成:j a v a 语言、 j a v a 虚拟机和类库。开发者用j a v a 语言编程、经过编译器处理成为文本格式的 字节码;字节码交给j a v a 虚拟机处理,转换成本地机器上运行的指令;而类库 集成了一大批已经经过测试的功能类,方便程序的开发【7 1 。 j a v am e 为开发手机应用提供了工业级别的开放式解决方案。它能够使移动 应用系统在不同的手机或者其它便携式计算机之间的移植成为可能。同时它也 是在不断地完善和修改之中,以更好地满足用户不断的需求。此外它是开放的, 这意味着使用它的开发者的规模是巨大且不断增加。这些保证了使用j a v am e 的系统能够获得最新的技术【l o 】。 j a v am e 平台由配置( c o n f i g u r a t i o n ) 、简表( p r o f i l e ) 和可选包( o p t i o n a lp a c k a g e ) 组成。其中配置和简表是必须的,而可选包则是可选的,其架构如图2 2 所示。 从本质上讲,这三者都只是j a v a 的类库,是适合在支持j a v am e 机器上运行的 类库版本。开发者可以根据不同的应用程序从三者各自选择相应的版本,并结 合相应机器上的虚拟机组合成一个完整的j a v am e 应用环境【8 】【9 】。 西南交通大学硕士研究生学位论文第10 页 j a v ag a m e a p p l i c a t i o n o p t i o n a lp a c k a g e p r o f i l e 币i 6 同眄嗣 c o n f i g u r a i o n 研几丽 j a v av i r t u a lm a c h i n e d e v i c eo p e r a t i n gs y s 把m 图2 - 2j a v am e 开发平台系统架构示意图 2 2 2j a v am e 配置 目前j a v am e 平台主要有两个配置:连接受限设备配置( c o n n e c t e dl i m i t e d d e v i c ec o n f i g u r a t i o n ) 和连接设备配置( c o n n e j c t e dd e v i c ec o n f i g u r a t i o n ) 。 c l d c 是为具体有间断性联网能力、低速度的处理器和小容量内存的计算 设备设计的。如移动电话、低端p d a 等,他们通常具有1 6 位或者3 2 位的c p u 、 1 2 8 k b 5 1 2 k b 可用于j a v a 平台实现和相关应用程序运行的内存。 c d c 为能力比较强的计算设备设计的。比如电视机机顶盒、高端p d a 等。 它比c l d c 包含了更多的j a v as f 的特性。通常需要在具有3 2 位或者6 4 位c p u 同时具有2 m b 以上的内存的硬件平台上才能运行。当然这些设备的能力不能和 个人计算机相比较。随着硬件技术的不断发展,移动设备的计算能力和存储容 量的不断增大,对应标准也是在不断地变化。 在手机游戏开发中,现在主要使用c l d c 。它由为应用程序提供最小的j a v a 语言类库和适合于运行在资源受限设备上的虚拟机两部分组成。与标准的j a v a s e 相比,它只提供了少量的特性,并存在较大的差别。具体表现为: 语言规范方面,不支持浮点运算、不支持f i n a l i z a t i o n 、有限的错误处理能力。 虚拟机规范方面,不支持用户自定义的类装载器、不支持线程组和守护进 程、不支持j a v a 本地接口、采用了新的类文件校验机制。 西南交通大学硕士研究生学位论文第1 1 页 核心类库方面,只提供了3 个包:j a v a 1 a n g ,j a v a u t i l 毒和j a v a i o 。 通用链接框架方面,把所有的链接当成u r l 形式来处理。 安全特性方面,运行在j a v a 虚拟机上的c l a s s 文件是要经过校验的,它不 能破坏虚拟机的宿主机的设备。但是在c l d c 里,把校验的主要部分放到开发 阶段,而在运行阶段只是进行简单的校验。 国际化支持方面,c l d c 提过了对字符的处理能力,它为字节流和 切n 1 c o d e 字符流转换提供了桥梁。 2 2 。3j a v am e 简表 简表是与配置组合,为应用提供运行环境,包括应用程序的结构和一组相 关的应用开发高级a p i 接口。本文只说明m i d p ( m o b i l ei n f o r m a t i o nd e v i c e p r o f i l e ) 。它是手机开发中用到的最常见的简表。简表出现屏蔽了具体的硬件的 具体参数和能力,让开发者把注意力放到程序本身上来。如果说配置是j a v am e 是对硬件实现功能最低要求的集合,那么简表就是在此基础上的应用接口。 m i d p 为在手机上运行的j a v am e 环境提供了一套方便开发的框架。它主要 包括以下几个方面: 1 应用程序模型m i d l e t 它是一个预定义的程序模型,包括程序运行时的结构以及发布时的结构。 2 图形用户界面 它提供了一系列的图形接口( 见图2 3 ) ,使得开发者无需直接同c l d c 打交 道就可以设计出外观精美、运行高效的图形界面。为了适应不同的应用环境, 它提供了两套实现组:如l i s t 、t e x t b o x 、f o r m 等高级组件,它们通常用来处理 一些事务应用中的菜单;而对于性能要求更高,需要处理像素级别的应用则采 用c a i v a s 这个低级组件来完成。这里的高级和低级并不是实现上的技术差别, 而是指开发人员需要的工作量来衡量的。工作量少的组件称之为高级组件,反 之为低级组件。 3 记录管理系统 它为开发者提供了数据持久性存储的方案。这就好比在个人电脑应用中, 即使把系统断电之后,只要实现保存在外存中。那么当系统再次回复运行时候, 就可以通过外存来恢复以前的情况。记录管理系统是一套类似的概念系统。 西南交通大学硕士研究生学位论文第12 页 以上是m i d p i 0 的主要方面。在其升级版本m i d p 2 0 中,增加了多媒体特 性,如管理声音播放的音频子系统;还有特别应用于游戏开发的开发包。这些 都被集成到了m i d p 中去。同时也要求开发人员在开发时候要考虑到目标手机 所能够支持的m i d p 的版本。 图2 - 3j a v am e 图形组件结构图 2 2 4j a v am e 可选包 可选包是标准形式的配置与简表组合的一种扩展机制。针对某些能力较强 的计算设备,可以通过可选包实现其特殊功能。例如常见的可选包有:无线消 息a p l ( w k e l e s sm e s s a g ea p i ,w m a ) ,移动多媒体a p l ( m o b i l em e d i aa p i , m m a e i ) ,蓝牙a e l 0 3 l u e t o o t ha p i ,b t a p i ) 等。 2 3j a v am e 手机运行控制 基于j a v am e 开发手机软件一般采取c l d c 与m i d p 的组合。在m i d p 中 定义了一个程序应用框架m i d l e t 。m i d l e t 既是这种应用框架又是m i d p 应用程 序的入口类名称。它的作用类似于c 语言、j a v a 语言中的m a i n 0 方法,其它任 西南交通大学硕士研究生学位论文第13 页 何的方法的调用必须通过它来进行。 m i d l e t 的生命周期相对很简单,可以归纳为四个状态:开始状态、活动状 态、暂停状态和销毁状态( 见图2 - 4 ) 。除了开始状态和销毁状态在整个生命周期 只能经历一次之外,活动状态和暂停状态之间可以通过外部条件触发进行转换, 但是同一个m i d l e t 程序在同一时间只能处于一个状态。 图2 - 4m l d i e t 运行状态图 与在个人计算机上的j a v a 程序不同的是,在手机上运行的程序及其运行过 程中使用到的所有资源必须被打包到一个j a r ( 后缀名为j 砷文件中。其组成为: 1 一个或者多个m i d l e t 类( 以编译后的c l a s s 文件类型存在) 。 2 其它相关的功能类,这些是开发者根据具体应用开发的。 3 资源文件,如图片文件,声音文件或者其它类型的数据文件。 4 。m a n i f e s t m f 文件。它是一个简单的文本文件,包含描述j a r 包属性的 属性对。它允许开发者加入自己的属性,但是属性对名称不能以m i d l e t 为前缀, 同时属性是严格匹配的,区分大小写。 此外对应于每个j a r 包,可以有一个j a d 描述文件( 内容见表2 1 ) 。它的内 容与j a r 包中的m a n i f e s t m f 文件的内容基本上相同。不同的是,前者是不 包含j a r 文件中。j a d 文件的作用是在把应用程序安装到设备之前,设备会先 读取j a d 文件中的内容,看是否能够有足够的能力运行j a r 包中的程序。例如 比较c l d c ( 或者c d c ) 和m i d p ( 或者其它的简表) 是否在本地得到支持或者是 j a r 包的大小。如果不支持,那么设备就会拒绝安装程序;如果支持,也可以 西南交通大学硕士研究生学位论文第1 4 页 根据j a d 对包进行校验,只有在j a d 与m a n i f e s t m f 中同时出现项的内容完 全一致情况下,才进行程序的安装。 表2 1j a r 包属性嗍 属性描述 必选属性 m i d l e t - n a m em i d l e t 包的名称 m i d l e t v e r s i o nm i d l e t 包的版本 m i d l e t v e n d o r m i d l e t 包的开发者 m i d l e t 包中每一个m i d l e t 的名称、类 如: m i d l e t - l :g a m e ,c o m p a n y t e a m y o u r g a m e m i c r o e d i t i o n p r o f i l e需要的简表的名称 如:m i c r o e d i t i o n p r o f i l e :m i d p 1 0 m i c r o e d i t i o n - c o n f i g u r a t i o n需要的配置的名称 如:m i c r o e d i t i o n c o n f i g u r a t i o n :c l d c - 1 0 可选属性 m i d l e t i c o n 作为包在手机( 需要支持) 上显示i c o n 的目标 m i d l e t - d e s c r i p t i o n 对包的简单描述 m i d l e t - j a r u r l下载包的u r l 地址 m i d l e t - j a r - s i z e包的大小 m i d l e t d a t a s i z em i d l e t 需要的最小持久存储的大小 2 4 本章小节 本章主要对手机游戏开发平台- j a v am e 作了介绍。j a v am e 平台以其高 兼容性和高移植性,成为绝大多数手机游戏开发的基本软件平台。本章从j a v a m e 所处的地位以及其具体构成做了简单的介绍,为手机游戏引擎的设计和实现 做技术铺垫。 西南交通大学硕士研究生学位论文第1 5 页 第3 章手机游戏引擎分析 3 1 手机游戏的运行控制 手机游戏的主线程是一个连续、重复的循环。它完成游戏逻辑的处理和控 制图像更新。每次循环处理的事务,可以被分到八个阶段中去【1 8 儿1 9 】【4 4 】【4 5 1 。 1 初始化:游戏程序执行标准初始化操作。如内存分配,资源采集,从外设 载入数据等。 2 进入游戏循环:代码运行到游戏主循环体内部。此时各种操作开始运行, 运行持续到用户退出主循环为止。 3 获得输入信息:程序将玩家的输入信息进行预处理,以各下一步人工智能 和游戏逻辑使用。 4 执行人工智能和游戏逻辑:执行游戏代码的主题部分,计算游戏当前状态 和输入信息在游戏逻辑条件下的结果,将其用于帧渲染图像的数据。 5 渲染帧图像:将游戏逻辑计算的结果渲染到屏幕不可见的缓冲区中。随后 该缓冲区内容将会被拷贝到显示缓冲区去。 6 同步显示:将在缓冲区的内容按照合适频率显示到屏幕上。保持显示频率 相对的稳定。 7 循环游戏:如果接收到结束游戏的指令,则退出游戏主循环;否则就转向 第二阶段。 8 游戏关闭:退出主程序并回到其宿主的操作系统。同时释放拥有的资源并 记录并清理游戏的信息。 图3 - 1 所表示的就是手机游戏运行时的项层控制示意图。 西南交通大学硕士研究生学位论文第1 6 页 图3 1 游戏运行时示意图 3 2 手机游戏开发的问题 手机游戏作为电子游戏的一种,它的开发过程同其它平台的游戏开发相类 似。但是手机游戏开发具有手机平台上独有的问题,因此相对来说手机游戏开 发显得更困难。这些问题主要表现在以下几点。 1 手机游戏的硬件平台适应性问题。 手机的结构千差万别,其应用软件的运行环境也是多种多样。尽管j a v am e 能够在一定程度上屏蔽这些差异,让符合j a v am e 规范的手机游戏能够在其平 台上运行。但是还有不少的手机使用其它类型的软件计算平台,如b r e w 。当 一款手机游戏在某一平台上( 如j a v am e ) 热销的时候;或者在手机游戏开发之前 已经决定要在多个软件计算平台发布同一款手机游戏;那么游戏在不同实现平 台之间的移植性能就显得十分重要。手机游戏的设计和开发主要基于某一款具 体型号的手机的具体软件计算平台( 如索尼爱立信k 8 0 0 手机的j a v am e ) 。游戏 开发人员要把注意力放到游戏本身的娱乐性上来,而不可能过多地把精力放到 处理不同手机平台实现的具体差异。 西南交通大学硕士研究生学位论文第1 7 页 2 手机游戏软件运行平台适应性问题。 各种支持j a v am e 手机的生产商在统一的j a v am e 接口定义下,实现其功 能。在一个支持j a v am e 平台的手机上开发的一款手机游戏,理论上它的代码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安庆市中储粮2025秋招面试专业追问题库购销统计岗
- 内蒙古地区中储粮2025秋招面试专业追问题库综合管理岗
- 松原市中储粮2025秋招基建工程岗高频笔试题库含答案
- 乐山市中石油2025秋招面试半结构化模拟题及答案新材料与新能源岗
- 国家能源甘孜自治州2025秋招面试专业追问及参考电气工程岗位
- 抗菌药物临床合理应用试题及答案
- 2025年急诊调度考试试题及答案
- 抚州市中石化2025秋招面试半结构化模拟题及答案市场营销与国际贸易岗
- 普洱市中石化2025秋招笔试模拟题含答案市场营销与国际贸易岗
- 2025年地理招聘考试题及答案
- 房地产销售岗位简历模版大全
- 智能楼宇管理员试卷及答案
- 创新成果转化高效推进承诺书6篇范文
- 自卸车安全教育培训课件
- 冶金行业事故回放课件
- 5年(2021-2025)高考1年模拟地理真题分类汇编专题03 地球上的水(解析版)(浙江专用)
- 电气检修班组安全培训课件
- 2024版中国高血压防治指南(完整版)
- 不再举报协议书6篇
- 空管知识培训材料课件
- 患者身份识别管理标准WST840-2025学习解读课件
评论
0/150
提交评论