摘要
这款游戏的名字叫《览桥风光》。J2ME(Java2MicroEdition)是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提〖本文来自:毕业设计论文网www.paper51.com〗供了革命性的解决方案,并因其"WriteOnce,runanywhere"的Java特性而提高开发的效率。
随着手机的日益普及、Java功能在移动设备上的实现,Java应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本论文着眼于J2ME技术的应用,开发一款可商用的手机游戏程序。本程序将老少皆宜的经典作品移植到手机上来,为更流行的硬件平台提供应用软件。
本论文介绍了J2ME的相关技术及本程序的结构分析和具体功能的实现。
关键字:J2ME;手机游戏;Java
ABSTRACT
ThetitleofthisgameisAirForceofChinain1937.J2MEisakindoffastdevelopingtechnologyimplementedonvariousdevicesespeciallymobilecommunicationequipments.Itfocusesonapplicationforconsumptiveelectronicproducts,providingrevolutionarysolutiontotheintelligentizetionanddiversificationoftheequipment.Itimprovetheefficiencyofthedevelopmentprocessthankstoits"WriteOnce,runanywhere"nature.
Whencellphoneisgettingevermorepopularnowadays,withtheimplementationofJavatechnologyonmobileequipment,incrementofcapitaloncommunicationserviceexhibitsitsforceonpeople'severydaylife,providingthemeverfastinformationjustinhand.ThisdissertationfocusesonimplementationofJ2MEtechnologyandhasdevelopedacommercialgamesuiterunonmobilephones.Thisapplicationtransportstheclassicalproducttomobilephones,offeringcorrespondingsoftwareforsuchmorepopularhardwareplatform.
ThisdissertationintroducesJ2MEanditsrelativetechnologyaswellasthisprogram'sstructureandanalysisofimplementationindetails.
Keywords:J2ME;mobilegame;Java
1.游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件、键盘事件都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易导致程序在〖本文来自:毕业设计论文网www.paper51.com〗运行不久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。
2.游戏中为了美观,适用性强,可能需要采用外部文件引入的图片贴图,有关贴图,在MIDP2.0中提供了用于增强游戏功能的game包,使得解决静态或动态、画面背景、屏幕刷新的双缓冲等都有较好的解决方案。
3.玩家飞机的运行可以通过键盘响应事件控制,但敌方则因为是自动运行,就需要有一定的智能性;敌人飞机的运行算法也要进行相关的设置,已免游戏过于简单。
4.对于双方发射的子弹应该赋予不同的速度,同时,程序应该设定敌人飞机的子弹不与敌人的飞机进行碰撞检测,已增加游戏的可玩性。
5.双方的飞机在前进时也需要考虑到是否碰撞到对方飞机,以免重叠运行,造成许多物理上不可能的情况,缺乏真实感。每一次刷新页面、每前进一步都需要进行相关的碰撞检测。
6.为了增加界面的美观,在程序中添加了白云。由于手机屏幕大小有限,所以白云的数量和出现的位置要经过相关的设置,才能实现白云不规则出现的效果。
7.游戏的地图不可能通过绘图来解决。否则,不仅难于控制和处理过多的元素,也会因过多的大型图片而不能限制程序的大小,失去手机上程序的原则和Java的优势。
8.Java是基于虚拟机的半解释型编译系统,其执行效率较C 等完全编译后的程序会低很多,程序如果不进行精简和优化,〖本文来自:毕业设计论文网www.paper51.com〗将可能导致运行的不流畅。除开发过程中对结构上的控制、变量的使用、算法的优化等优化外,还可以使用混淆器(Obfuscator)进行程序打包后的优化。
9.游戏的结束、开始、动态信息画面作为构成一个程序都是必不可少的重要部分。良好的用户界面更是吸引用户的硬指标,相关的美术构图和人性化设置也需要有一定的考虑。
目录
1绪论1
1.1手机软件现状1
1.2J2ME介绍1
1.3手机游戏应具有的特征2
1.4本游戏背景介绍3
1.5本章小结3
2开发环境及相关技术的介绍4
2.1开发环境4
2.2JAVA语言特点4
2.3关于ECLIPSE4
2.4关于WIRELESSTOOLKIT5
2.5JAVAAPPICATIONMANAGER5
2.6本章小结:5
3程序结构、思想和相关技术6
3.1本程序需要解决的主要技术问题6
3.2程序流程7
3.3CANVAS类7
3.4GRAPHICS类8
3.5MIDP1.0技术下的绘制背景技术8
3.6MIDP2.0新增的GAMECANVAS包8
3.7PNG图片格式9
3.8玩家飞机的控制方式和敌人方的智能运行10
3.9子弹的运行和控制11
3.10内存的优化11
3.11内存检测器11
3.12关于混淆器12
3.13本章小结12
4程序分析和具体实现13
4.1游戏进入前的选择13
4.2MYBULLETS类15
4.3游戏逻辑及GAMESCREEN类15
4.3.1gameScreen类所实现的功能15
4.3.2地图的创建16
4.3.3地图的移动16
4.3.4gameScreen类的构造函数17
4.3.5关于commandAction()方法17
4.3.6Sprite类对象的碰撞检测及相关属性18
4.3.7玩家4次游戏机会的实现方法19
4.3.8input()19
4.3.9render()和renderboss()20
4.4游戏中的奖励及相关飞机的行为21
4.5普通敌人相关属性22
4.6白云的实现原理24
4.7关尾BOSS及相关属性24
4.8本章小结25
5测试26
5.1打包测试的过程26
5.2发现的BUG及解决情况27
5.3未完善的功能28
6总结29
6.1本程序的总结和展望29
6.2感想29
致谢30
参考文献30
附录一代码31
附录二操作说明56
附录三英文文献及其译文57