1、 基于 Java ME的游戏开发 GAME DESIGN BASED ON JAVA ME 专 业: 计算机科学与技术 姓 名: 李郡 指导教师姓名: 申请学位级别: 学 士 论文提交日期: 2011 年 6 月 12 日 学位授予单位: 天津科技大学 I 摘 要 在当今的网络信息时代,移动设备已在老百姓的生活中占据了不可或缺的地位。人们 越来越渴望利用空闲时间进行简单而有趣的娱乐活动。随着 Java 技术的发展, Java ME 手机游戏应运而生。 Java ME 是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它的目标定位在电子消费产品与嵌入式设备上,对设备
2、的智能化、多样化,提供了革命性的解决方案。 本论文着眼于 Java ME 技术的应用 ,开 发一款飞行射击手机游戏程序。 按照Java ME 下的 MIDP 2.0 配置标准, 安装了 JVM 虚拟机, 采用 Eclipse 和 WTK 的集成开发环境, 最后用 Motorola SDK v4.2 for Java ME 模拟器运行了程序, 实现了 背景滚轴 , 游戏角色飞行控制, 子弹 发射效果 等功能。 论文前半部分介绍了课题背景,程序所用的开发环境, Java ME 的相关技术等。 后半部分对所用技术和程序的结构流程进行了分析,并详细说明了各 模块的具体实现 。最后对程序进行了测试,并对
3、运行过程中出现 的不足之处进行了分析,提出了改进的思路。 关键词 : 手机游戏; Java ME; MIDP 2.0 II ABSTRACT In todays network information age, mobile equipment has set up a file in the common peoples life occupy the indispensable status. People are more and more eager to use their free time for simple and interesting entertainment acti
4、vities. As Java technology development, the Java ME mobile games came into being. Java is in recent years along with various of Java ME different equipment, especially the rapid development of mobile communications equipment and the birth of a new development technology. It localization of target in
5、 the consumer electronics and embedded equipment, equipment for the intelligent, diversified, provides innovative solutions. This paper focus on Java ME technology application, develop a shooting flight mobile phone game program. According to the Java ME under the standard of MIDP 2.0, install the J
6、VM virtual machine, use Eclipse and WTK integrated development environment, finally use Motorola SDK v4.2 for Java ME to run the program,realize the map scrolling, move control, the bullet effect and other functions. The first half of this paper introduces the background of subject, the integrated d
7、evelopment environment, Java ME the relevant technology and so on. The second part of the technology and process flow structure is analyzed, and the function module detail the practical implementation. At last test the program, and the operation process of the method shortcomings are analyzed and so
8、me improvement ideas. Key words: mobile games; Java ME; MIDP 2.0 III 目 录 第一章 概述 . 1 第一节 课题背景 . 1 第二节 设计简要 . 1 第二章 开发环境及技术介绍 . 3 第一节 开发环境 . 3 第二节 技术简介 . 3 第三章 相关技术及 程序流程 . 6 第一节 游戏相关技术分析 . 6 第二节 程序流程 . 11 第四章 程序详细设计 .13 第一节 用户界面设计 .13 第二节 交互功能设计 .14 第三节 游戏逻辑与主类设计 .16 第四节 游戏奖励机制设计 .20 第五节 人工智能设计 .22 第
9、五章 系统测试 .25 第六章 总结 .28 参考文献 致谢 天津科技大学 2011 届本科生毕业设计 1 第一章 概述 第一节 课题背景 在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行。但是传统手机存在以 下弊端: 1.传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除,有了错误也不能更新、修改,若要增加新功能必须另换一部手机。 2.传统手机访问互联网是通过 WAP(Wireless Application Protocal),所有网络资源必须接通网络才能在线访问,非常耗时、费用亦很高。 而 Java 技术在
10、无线应用方面的优势非常明显: 1.应用程序可按需下载,而不是购买由硬件商提供的套件,可升级空间大。 2.Java 技术提供了一个类库,它使的应用开发商可以创建更为直觉、丰富的用户界面 (GUI)。 3.Java 技术使网络带宽的应用更为有效,因为应用程序可以下载到器件上,并在本地运行,仅仅是在连接到服务器时才会占用网络带宽。 基于以上分析, Java 手机将是未来手机的发展方向,是业界的热点。 虽然 Java 已经被用到许多企业级软体上,可是其实骨子里面还是非常适合用在嵌入式系统之中。 Java 平台演进到 Java2 后, Java 平台分别针对不同领域的需求被分成四个版本,亦即 J2EE、
11、 J2SE、 JAVA ME 以及 JavaCard。 其中 JAVA ME 定位在消费性电子产品的应用上。这个版本针对资源有限的电子消费产品的需求精简核 心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。这个版本的应用层面相当广泛,会是未来 Java 平台发展的重点项目。 JAVA ME 在 1999 年的 Java One 开发人员大会上初次亮相,它的目标是面向智能无线设备和小型计算机设备的开发人员。 JAVA ME 的一个关键优点是, JAVA ME与所有支持 Java 的设备都是兼容的。支持 Java 的设备就是任何运行 Java 虚拟机器的计算机。 Motorola、
12、 Nokia 等生产厂商都生产支持 Java 的设备。、 JAVA ME 平台是由配置( Configuration)和简表( Profile)构成的。配置是提供给最大范围 设备使用的最小类库集合,在配置中同时包含 Java 虚拟机。简表是针对一系列设备 提供的开发包集合。在 JAVA ME 中还有一个重要的概念是可选包( Optional Package),它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能 JAVA ME 中制定了 JSR82( Bluetooth API)提供了对蓝牙的支持。 天津科技大学 2011 届本科生毕业设计 2 目前, JAVA ME 中有两个最主
13、要的配置,分别是 Connected Limited Devices Configuration( CLDC)和 Connected Devices Configuration( CDC)。 作为第一个面对小型设备的 Java 应用开发规范, CLDC 是由包括 Nokia,Motorola和 Siemens在内的 18家全球知名公司共同协商完成的。 CLDC是 JAVA ME核心配置中的一个,可以支持一个或多个 profile。其目标主要面向小型的、网络连接速度慢、能源有限(主要是电池供电)且资源有限的设备,如手机、 PDA等。 第二节 设计简要 本次设计研究的内容是基于 Java ME 的
14、游戏开发。首先对 Java ME 下的 java语法有一个系统的认识, 熟练掌握在 eclipse 平台下的 Java ME 编程操作及 MOTO SDK 的使 用。然后对游戏 各模块 内部逻辑进行设计,绘出核心游戏逻辑的框架图,再编写具体程序实现。最后通过游戏测试发现 bug 并修正或提出改进思路。 本次设计计划实现的功能: 一、 用户界面。 友好美观的游戏背景介绍界面和进入游戏界面 二、 交互功能。 支持玩家通过按键输入控制飞机移动和射击 三、 游戏机会奖励机制。 玩家击落特殊敌机后会获得增加游戏机会奖励的功能 四、 背景美化效果。 通过 JAVA ME 中的双缓冲技术实现地图绘制及动 态
15、效果 五、 游戏的人工智能。 实现普通敌机和关尾大型敌机的智能动作 天津科技大学 2011 届本科生毕业设计 3 第二章 开发环境及技术简介 第一节 开发环境 1.操作系统: Microsoft Windows XP 2.程序语言: Java 2 3.开 发 包: Java(TM) 2 Standard Edition (5.0) Sun Micro. JAVA ME Wireless Tool Kit 2.2 4. IDE: Eclipse 3.01 5.模拟器: Motorola SDK v4.2 for Java ME 第二节 技术简介 一、 Java 语言特点 (一) 平台无关性 Ja
16、va 引进虚拟机原理,并运行于虚拟机,实现不同平台之间的 Java 接口。Java 的数据类型与机器无关。 (二) 安全性 Java 的编程类似 C+,但舍弃了 C+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针入侵系统。它提供了安全管理器,防止程序的非法访问。 (三) 面向对象 Java 吸收了 C+面向对象的概念,将数据封装于类中,实现了程序的简洁性和便于维护性,使程序代码可以只需一次编译就可反复利用。 (四 ) 分布式 Java 建立在 TCP/IP 网络平台上,提供了用 HTTP 和 FTP 协议传送和接收信息的库函数,使用其相关技术可以十分方便
17、的构建分布式应用系统。 (五) 健壮性 Java 致力与检查程序在编译和运行时的错误,并自动回收内存,减少了内存出错的可能性。 Java 取消了 C语言的结构、指针、 #define 语句、多重继承、goto 语句、操作符、重载等不易被掌握的特性,提供垃圾收集器自动回收不用的内存空间 1。 二、 Java ME 简介 (一) Java ME 天津科技大学 2011 届本科生毕业设计 4 Java ME 以往称作 JAVA ME(Java Platform,Micro Editon),是为机顶盒、移动电话和 PDA 之类嵌入式消费电子设备提供的 java 语言平台,包括虚拟机和一系列标准化的 J
18、ava API。它和 Java SE、 Java EE 一起构成 java 技术的三大版本,并且同样是通过 JCP( Java Community Process)制订的 2。 (二) 虚拟机 JVM 是 Java Virtual Machine( Java 虚拟机)的缩写, JVM 是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java 虚拟 机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM 屏蔽了与具体操作系统平台相关的信息,使 Java 程序只需生成在 Java 虚拟机上运行的目标代码(字节
19、码) ,就可以在多种平台上不加修改地运行。 JVM 在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。编译虚拟机的指令集与编译微处理器的指令集非常类似 3。 (三) Java API Java API 通过支持平台无关性和安全性,使得 Java 适应于网络应用。 Java API是 运行库 的集合,它提供了一套访问 主机系统 资源的标准方法。 运行 Java 程序时, 虚拟机 装载程序的 class 文件 所使用的 Java API class 文件。所有被装载的 class 文件 (包括从 应用程序 中和从 Java API 中提取的 )和所有已经装载的动态库 (包含本地
20、方法 )共同组成了再 Java 虚拟机上运行的整个程序。 在一个平台能够支持 Java 程序以前,必须在这个特定平台上明确地实现 API 的功能。为访问主机 上的本地资源, Java API 调用了本地方法。由于 Java API class文件调用了本地方法, Java 程序就不需要再调用它们了。通过这种方法, Java API class 文件为底层主机提供了具有平台无关性、标准接口的 Java 程序。对 Java 程序而言,无论平台内部如何, Java API 都会有同样的表现和可预测的行为。正是由于在每个特定的主机平台上明确地实现了 Java 虚拟机和 Java API,因此, Jav
21、a程序自身就能够成为具有平台无关性的程序。 Java API 在 Java 安全性模型方面也有贡献。当 Java API 的方法进行任何有潜在危险的操作 (比如进行本地磁盘写操作 )之前,都会通过查询访问控制器来检验是否得到了授权。访问控制器是一个类,该类用来执行栈检验,已决定是否允许某种操作。 Java API 在 Java 安全性模型方面也有贡献。当 Java API 的方法进行任何有潜在危险的操作 (比如进行本地磁盘写操作 )之前,都会通过查询访问控制器来检验是否得到了授权。访问控制器是一个类,该类用来执行栈检验,已决定是否允许某种操作 4。 三、 Eclipse 简介 Eclipse
22、是一个开放源代码的、基于 Java 的可扩展开 发平台。就其本身而天津科技大学 2011 届本科生毕业设计 5 言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具( Java Development Tools, JDT)。 虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。 Eclipse 还包括插件开发环境( Plug-in Development Environment, PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它
23、允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所 。 这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+、 COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。 Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容 管理系统。 Eclipse 是一个开放源代码的、基于 Java 的
24、可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境 5。 四、 关于 Wireless Tool Kit WTK(Wireless Tool Kit)是 Sun 公司针对 JAVA ME 推出的用于手机和 Palm等移动设备的开发包,是除手机厂商的专用开发包外唯一的手机模拟器开发包。它通用性高,开发出的应用程序可保证能运行在大部分设备上,而不像专用厂商具有一定的不兼容性。虽然它没有强大的功能和完善的调试手段,但它提供运行模 拟器的最基本组件,是其他 IDE 需集成采用的必备元素 6。 天津科技大学 2011 届本科生毕业设计 6 第三章 程序流程与技术分析 第
25、一节 游戏相关技术分析 一、本次计划 解决的主要技术问题: 1.游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件、键盘事件都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易导致程序在运行不久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。 2.游戏中为了美观,适用性强,可能需要采用外部 文件引入的图片贴图,有关贴图,在 MIDP2.0 中提供了用于增强游戏功能的 game 包,使得解决静态或动态、画面背景、屏幕刷新的双缓冲等都有较好的解决方案。 3.玩家飞机
26、的运行可以通过键盘响应事件控制,但敌方则因为是自动运行,就需要有一定的智能性;敌人飞机的运行算法也要进行相关的设置,已免游戏过于简单。 4.对于双方发射的子弹应该赋予不同的速度,同时,程序应该设定敌人飞机的子弹不与敌人的飞机进行碰撞检测,已增加游戏的可玩性。 双方的飞机在前进时也需要考虑到是否碰撞到对方飞机,以免重叠运行,造成许多物理上不可能的 情况,缺乏真实感。每一次刷新页面、每前进一步都需要进行相关的碰撞检测。 5.为了增加界面的美观,在程序中添加了白云。由于手机屏幕大小有限,所以白云的数量和出现的位置要经过相关的设置,才能实现白云不规则出现的效果。 6.游戏的地图不可能通过绘图来解决。否则,不仅难于控制和处理过多的元素,也会因过多的大型图片而不能限制程序的大小,失去手机上程序的原则和Java 的优势。 7.Java 是基于虚拟机的半解释型编译系统,其执行效率较 C+等完全编译后的程序会低很多,程序如果不进行精简和优化,将可能导致运行的不流畅。除开发过程中对结构上的控制、变量的使用、算法的优化等优化外,还可以使用混淆器 (Obfuscator)进行程序打包后的优化。 8.游戏的结束、开始、动态信息画面作为构成一个程序都是必不可少的重要部分。良好的用户界面更是吸引用户的硬指标,相关的美术构图和人性化设置也需要有一定的考虑。 以上相关技术细节和整体流程将分别在以下阐述。