{$cfg_webname}
主页 > 计算机 > JAVA >

基于J2ME的飞行游戏设计与实现

来源:56doc.com  资料编号:5D858 资料等级:★★★★★ %E8%B5%84%E6%96%99%E7%BC%96%E5%8F%B7%EF%BC%9A5D858
资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用. 帮助
资料介绍

摘要:
这款游戏的名字叫《抗日空魂》。J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“Write Once, run anywhere”的Java特性而提高开发的效率。随着手机的日益普及、Java功能在移动设备上的实现,JAVA应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本论文着眼于J2ME技术的应用,开发一款可商用的手机游戏程序。本程序将老少皆宜的经典作品移植到手机上来,为更流行的硬件平台提供应用软件。本论文介绍了J2ME的相关技术及本程序的结构分析和具体功能的实现。(所有权: 毕业设计网 )

关键词:J2ME;手机游戏;JAVA

ABSTRACT
Game name is "anti-Japanese empty soul." J2ME (Java 2 Micro Edition) are recent years, with a variety of different devices, especially mobile communications equipment and the rapid development of the birth of a new development technology. Its positioning in the consumer electronics applications, intelligent equipment, diversification, provides a revolutionary solution, and because of its "Write Once, run anywhere" features of Java and improve development efficiency. With the increasing popularity of mobile phone, Java functionality in the mobile device implementation, JAVA application of mobile value-added services have gradually reflect their influence to enrich the content of people's lives, providing easier access to information plays a role can not be ignored. This paper focus on J2ME technology, the development of a commercial mobile phone games available procedures. This procedure will be ages of classics ported to mobile phone up for more popular hardware platform to provide application software. In this paper, the introduction of the J2ME technology and the procedures for structural analysis and implementation of specific functions.

Key Words: J2ME  MobileGames  JAVA

一个手机游戏应该具有以下特征:
易于学习: 既然手机游戏面向的是普通消费者而不是计算机专家,那么他们不可能深入的学习游戏技巧。消费者不会花几个小时去研究一个3元的手动操作的游戏。保持游戏的简单是最基本的要求。
可中断性: 多任务处理是手机生活方式的基本特征。手机用户常常在任务(如等一个电子邮件或者等车)之间有一小段时间。而游戏、日历管理、通讯和工作数据访问使用的是同一个设备。所以一个好的手机游戏应该提供短时间的娱乐功能,并且允许用户在游戏和工作模式之间顺利切换。
基于订阅:手机游戏的盈利成功取决于他们巨大的使用量。一开始开发和设计每个游戏都是昂贵的。如果一个手机游戏开发者要赢利的话,重要的是:同一个游戏引擎,多个标题,基本的故事情节类似。基于订阅的游戏是不断产生收入的最好方法。
丰富的社会交互: 不管一个游戏设计得多好,只要玩家找到了它的根本模式或者玩完了所有的游戏路径很快就会厌烦这个游戏。对于一个基于订阅的游戏,重要的是与别的玩家合作以增强所玩游戏的智力和随机性。在今天纷繁复杂的多玩家游戏中具有丰富社会交互的游戏证明是成功的。
利用手机技术的优点:巨额的手机技术研发费用都花在提高设备和网络的可用性和可靠性上面。因此,手机设备硬件和网络协议与桌面/控制台世界(如全球定位系统(GPS) 扩展、条形码扫描仪、和短消息服务(SMS)/多媒体信息服务(MMS)通讯)有着非常大的差别。好的手机游戏应该利用那些更新的设备特征和网络基础设备的优点。(所有权: 毕业设计网 )

开发环境
操作系统:Microsoft Windows XP
程序语言:JAVA 2
开 发 包:JDK1.6  Sun Micro. J2ME   Wireless Tool Kit 2.5.2
IDE:    Eclipse 3.41

1.游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件、键盘事件都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易导致程序在运行不久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。
2.游戏中为了美观,适用性强,可能需要采用外部文件引入的图片贴图,有关贴图,在MIDP2.0中提供了用于增强游戏功能的game包,使得解决静态或动态、画面背景、屏幕刷新的双缓冲等都有较好的解决方案。
3.玩家飞机的运行可以通过键盘响应事件控制,但敌方则因为是自动运行,就需要有一定的智能性;敌人飞机的运行算法也要进行相关的设置,已免游戏过于简单。
4.对于双方发射的子弹应该赋予不同的速度,同时,程序应该设定敌人飞机的子弹不与敌人的飞机进行碰撞检测,已增加游戏的可玩性。
5.双方的飞机在前进时也需要考虑到是否碰撞到对方飞机,以免重叠运行,造成许多物理上不可能的情况,缺乏真实感。每一次刷新页面、每前进一步都需要进行相关的碰撞检测。
6.为了增加界面的美观,在程序中添加了白云。由于手机屏幕大小有限,所以白云的数量和出现的位置要经过相关的设置,才能实现白云不规则出现的效果。
7.游戏的地图不可能通过绘图来解决。否则,不仅难于控制和处理过多的元素,也会因过多的大型图片而不能限制程序的大小,失去手机上程序的原则和JAVA的优势。
8.JAVA是基于虚拟机的半解释型编译系统,其执行效率较C++等完全编译后的程序会低很多,程序如果不进行精简和优化,将可能导致运行的不流畅。除开发过程中对结构上的控制、变量的使用、算法的优化等优化外,还可以使用混淆器(Obfuscator)进行程序打包后的优化。
9.游戏的结束、开始、动态信息画面作为构成一个程序都是必不可少的重要部分。良好的用户界面更是吸引用户的硬指标,相关的美术构图和人性化设置也需要有一定的考虑。(所有权: 毕业设计网 )










目  录

摘要......................................................4
ABSTRACT..................................................5
1 绪论 6
1.1 手机软件现状 6
1.2 J2ME介绍 6
1.3 手机游戏应具有的特征 7
1.4 本游戏背景介绍 8
1.5 本章小结 8
2 开发环境及相关技术的介绍 9
2.1 开发环境 9
2.2 JAVA语言特点 9
2.3 关于ECLIPSE 4
2.4 关于WIRELESS TOOL KIT 10
2.5 本章小结 10
3 程序结构、思想和相关技术 11
3.1 本程序需要解决的主要技术问题 11
3.2 程序流程 6
3.3 CANVAS类 7
3.4 GRAPHICS类 13
3.5 MIDP1.0技术下的绘制背景技术 8
3.6 MIDP2.0新增的GAMECANVAS包 8
3.7 PNG图片格式 9
3.8 玩家飞机的控制方式和敌人方的智能运行 16
3.9 子弹的运行和控制 17
3.10 内存的优化 17
3.11 内存检测器 18
3.12 关于混淆器 18
3.13 本章小结 18
4 程序分析和具体实现 19
4.1 游戏进入前的选择 19
(所有权: 毕业设计网 )
4.2 MYBULLETS类 21
4.3 游戏逻辑及GAMESCREEN类 21
4.3.1 gameScreen类所实现的功能 22
4.3.2 地图的创建 22
4.3.3 gameScreen类的构造函数 23
4.3.4地图的移动 23
4.3.5 关于commandAction()方法 24
4.3.6 Sprite类对象的碰撞检测及相关属性 24
4.3.7 玩家4次游戏机会的实现方法 18
4.3.8 input() 18
4.3.9 render()和renderboss() 19
4.4 游戏中的奖励及相关飞机的行为 19
4.5 普通敌人相关属性 28
4.6 白云的实现原理 30
4.7 关尾BOSS及相关属性 31
4.8本章小结 32
5测试 33
5.1 打包测试的过程 33
5.2 发现的BUG及解决情况 35
5.3 未完善的功能 35
6总结 37
6.1 本程序的总结和展望 37
6.2 感想 37
参考文献 38
致谢 39

推荐资料