打飞机游戏程序设计与实现
摘 要
这款游戏的名字叫《览桥风光》。J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其"Write Once, run anywhere"的JAVA特性而提高开发的效率。
随着手机的日益普及、Java功能在移动设备上的实现,JAVA应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本论文着眼于J2ME技术的应用,开发一款可商用的手机游戏程序。本程序将老少皆宜的经典作品移植到手机上来,为更流行的硬件平台提供应用软件。
本论文介绍了J2ME的相关技术及本程序的结构分析和具体功能的实现。
关键字:J2ME;手机游戏;JAVA [来源:http://Doc163.com]
ABSTRACT
The title of this game is Air Force of China in 1937. J2ME is a kind of fast developing technology implemented on various devices especially mobile communication equipments. It focuses on application for consumptive electronic products, providing revolutionary solution to the intelligentizetion and diversification of the equipment. It improve the efficiency of the development process thanks to its "Write Once, run anywhere" nature.
When cell phone is getting ever more popular nowadays, with the implementation of JAVA technology on mobile equipment, increment of capital on communication service exhibits its force on people's everyday life, providing them ever fast information just in hand. This dissertation focuses on implementation of J2ME technology and has developed a commercial game suite run on mobile phones. This application transports the classical product to mobile phones, offering corresponding software for such more popular hardware platform.
This dissertation introduces J2ME and its relative technology as well as this program's structure and analysis of implementation in details. [版权所有:http://DOC163.com]
Key words:J2ME; mobile game; JAVA [资料来源:http://www.doc163.com]
1. 游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件、键盘事件都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易导致程序在运行不久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。
2. 游戏中为了美观,适用性强,可能需要采用外部文件引入的图片贴图,有关贴图,在MIDP2.0中提供了用于增强游戏功能的game包,使得解决静态或动态、画面背景、屏幕刷新的双缓冲等都有较好的解决方案。
3. 玩家飞机的运行可以通过键盘响应事件控制,但敌方则因为是自动运行,就需要有一定的智能性;敌人飞机的运行算法也要进行相关的设置,已免游戏过于简单。
4.对于双方发射的子弹应该赋予不同的速度,同时,程序应该设定敌人飞机的子弹不与敌人的飞机进行碰撞检测,已增加游戏的可玩性。
5. 双方的飞机在前进时也需要考虑到是否碰撞到对方飞机,以免重叠运行,造成许多物理上不可能的情况,缺乏真实感。每一次刷新页面、每前进一步都需要进行相关的碰撞检测。
6.为了增加界面的美观,在程序中添加了白云。由于手机屏幕大小有限,所以白云的数量和出现的位置要经过相关的设置,才能实现白云不规则出现的效果。
[资料来源:http://www.doc163.com]
7. 游戏的地图不可能通过绘图来解决。否则,不仅难于控制和处理过多的元素,也会因过多的大型图片而不能限制程序的大小,失去手机上程序的原则和JAVA的优势。
8. JAVA是基于虚拟机的半解释型编译系统,其执行效率较C++等完全编译后的程序会低很多,程序如果不进行精简和优化,将可能导致运行的不流畅。除开发过程中对结构上的控制、变量的使用、算法的优化等优化外,还可以使用混淆器(Obfuscator)进行程序打包后的优化。
9. 游戏的结束、开始、动态信息画面作为构成一个程序都是必不可少的重要部分。良好的用户界面更是吸引用户的硬指标,相关的美术构图和人性化设置也需要有一定的考虑。
目 录
1 绪论 1
1.1 手机软件现状 1
1.2 J2ME介绍 1
1.3 手机游戏应具有的特征 2
1.4 本游戏背景介绍 3
1.5 本章小结 3
2 开发环境及相关技术的介绍 4
2.1 开发环境 4
2.2 JAVA语言特点 4
2.3 关于ECLIPSE 4
2.4 关于WIRELESS TOOL KIT 5
2.5 JAVA APPICATION MANAGER 5
2.6 本章小结: 5
3 程序结构、思想和相关技术 6
3.1 本程序需要解决的主要技术问题 6 [资料来源:www.doc163.com]
3.2 程序流程 7
3.3 CANVAS类 7
3.4 GRAPHICS类 8
3.5 MIDP1.0技术下的绘制背景技术 8
3.6 MIDP2.0新增的GAMECANVAS包 8
3.7 PNG图片格式 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.2 MYBULLETS类 15
4.3 游戏逻辑及GAMESCREEN类 15
4.3.1 gameScreen类所实现的功能 15
4.3.2 地图的创建 16
4.3.3地图的移动 16
4.3.4 gameScreen类的构造函数 17
4.3.5 关于commandAction()方法 17
4.3.6 Sprite类对象的碰撞检测及相关属性 18
4.3.7 玩家4次游戏机会的实现方法 19
4.3.8 input() 19
4.3.9 render()和renderboss() 20
4.4 游戏中的奖励及相关飞机的行为 21
4.5 普通敌人相关属性 22
4.6 白云的实现原理 24
4.7 关尾BOSS及相关属性 24
4.8本章小结 25
5测试 26
5.1 打包测试的过程 26 [资料来源:Doc163.com]
5.2 发现的BUG及解决情况 27
5.3 未完善的功能 28
6总结 29
6.1 本程序的总结和展望 29
6.2 感想 29
致 谢 30
参考文献 30
附录一 代码 31
附录二 操作说明 56
附录三 英文文献及其译文 57
下一篇:论坛管理系统的设计与实现