1、本 科 毕 业 设 计基于 J2ME环境的手机游戏软件的开发所在学院 专业班级 电子与信息工程 学生姓名 学号 指导教师 职称 完成日期 年 月 摘要Java ME 以往称作 J2ME(Java Platform, Micro Edition )是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的 Java语言平台,包括虚拟机和一系列标准化的 Java API。它和 Java SE、Java EE一起构成 Java技术的三大版本,并且同样是通过 JCP(Java Community Process)制订的。网络游戏产业的繁荣,让企业和消费者同时认识到了游戏的力量。虽然受到屏幕尺寸和操控的限
2、制,但作为全球使用量最大的通信产品,手机也具有成功进入掌上游戏领域的理由。从二维贪吃蛇游戏,到今天的三维画面及声色效果俱佳的游戏,手机游戏已经成为一种非常普遍的休闲方式。本文开发的游戏是一个略微简单的 J2ME射击游戏。本文首先简要的介绍 java编程语言的三个领域(J2SE、J2EE、J2ME) ,接下去是开发环境的配置的简要介绍,提出了怎样对游戏进行策划,游戏的需求性分析。本论文的主要目标是实现一个名为飞机闯闯的游戏,进入游戏后,首先启动闪屏界面,后台默认加载游戏资源,然后进入到菜单界面,通过用户的选择,转到其他相关界面。本文将程序分为六个类,包括 BulletsSprite类,此类继承于
3、Sprite,主要实现了游戏子弹精灵。IntroCanvas 用于绘制帮助界面,显示游戏帮助信息。mainMIDlet属于主控模块类,用于整个游戏界面的切换,其他各个模块返回中断信号给此类,在这个类中切换当前显示屏幕。MenuCanvas 用户提供一个菜单界面,方便用户选择不同的游戏程序功能。PlayCanvas 为游戏的主界面,实现了游戏功能。SplashCanvas 是闪屏界面,显示此界面时,启动后台线程,加载游戏资源。关键词:J2ME;飞机射击;手机游戏开发IIAbstractJava ME past the J2ME (Java Platform called for Micro ha
4、ppen), STB, mobile phone and PDA embedded consumer electronic equipment such as the Java language Platform provides, including virtual machine and a series of standardized Java API. It and Java SE, Java EE together make up Java technology, and as the three versions that JCP (Java is through the Proc
5、ess) make. Online game industry prosperity, let the enterprise and the consumer also recognized the power game. Though when the screen size and manipulating restrictions, but as a global usage, the biggest communication products with successful mobile phones are the reason palm game domain into. Fro
6、m 2d snake game, to todays 3d picture and timbres result and game, mobile gaming has become a very common way of recreation.This paper development game is a slightly simple J2ME shooting game. This paper first briefly introduces three fields of Java programming language (J2SE Java, J2EE, J2ME), the
7、next is the development environment of the configuration are briefly introduced, proposed how the game plan, the game needs sex analysis. This thesiss main goal is to achieve a named “aircraft, the game of chuang chuang after entering the game, the first start flash screen interface, background, and
8、 then load game resources by default into menu interface, through the user choice, turn to other relevant interface. This article will program is divided into six categories, including BulletsSprite classes, such inheritance in Sprite, mainly realizes the game bullets elves. IntroCanvas used to do h
9、elp interface, show games help information. MainMIDlet belong to control module class for the whole game interface of switching, other modules to return to interrupt signal in this class of switching the current the display screen. MenuCanvas users with a menu interface, the convenient user choose d
10、ifferent game program function. PlayCanvas main interface for the game, realized the functionality. SplashCanvas is flash screen interface, shows that this interface, starting background thread, loading game resources.Keywords: J2ME; Aircraft shot; Mobile games developmenti目 录前言 -1第 1章 J2ME 介绍 -21.1
11、 J2ME体系结构 -21.1.1 配置层 -21.1.2 简表层 -31.1.3 CLDC类库 -31.1.4 MIDP -41.2 J2ME WTK-4第二章 J2ME 手机开发环境介绍 -52.1 JDK的安装与配置 -52.2 Eclipse的配置 -6第三章 射击游戏程序功能分析 -73.1程序功能需求分析 -73.2 游戏的可行性分析 -73.3 游戏策划 -83.3.1 游戏的故事背景策划 -83.3.2 游戏开始画面系统 -83.3.3 游戏操作介绍 -83.3.4游戏内容分系统 -93.3.5 线程控制和游戏暂停系统 -9第四章 手机游戏设计 -104.1 游戏基础类简介 -
12、104.2 游戏系统的详细设计 -114.3 创建 J2ME项目设计 -124.4 MIDP应用程序 -12第五章 游戏的具体实现 -145.1 主菜单背景界面系统 -145.2 子弹与飞机界面系统 -155.3 键盘的响应 -16ii5.4 子弹的发射爆炸控制 -165.5 飞机与子弹或者其他事物碰撞检测 -175.6 玩家四次游戏机会的实现 -175.7 游戏中的奖励和飞机的相关行为 -175.8 普通敌人的相关属性 -185.9 运动中的如何让白云实现 -19第六章 系统测试 -206.1 程序软件问题 -206.2 游戏内容测试 -20总结 -21致谢 -22参考文献 -23附录 -2
13、41前言随着科学技术的发展,人们的工作和生活方式已经发生了巨大的变化。现今各种各样的智能消费类电子产品呈现爆炸性增长,其数量已经远远超过桌面 PC,以当前使用最多的移动通信设备手机来为例,随着移动设备硬件的不断发展,手机的内存也在逐渐的加大,虽然远不及 PC机的内存,但是应经从原来的几字节发展到如今的几兆之多。同时也嵌入了智能芯片,处理器的能力也大大增加,同时使用了智能的手机操作系统,具有支持数码相机等丰富的多媒体等功能。这些功能很难让人相信是在短短的一两年之内完成的,其速度之快,却是让人感到震惊。通过周围人的使用情况,我们就会发现其速度的发展并不是没有原因的,手机逐渐普及和硬件设备的发展,以
14、及 JAVA语言的成熟都是推动手机智能化的重要力量。移动设备的增长一方面体现在数量的几何形增长趋势;另一方面,设备本身也向着更强大的处理能力、智能应用等方向的发展。移动设备数量的剧增,在带给人们更多方便的同时,也产生了巨大的移动开发市场。随着手机的普及,手机逐渐生活化,成为了人们生活中必备的一部分。人们对手机的功能要求也越来越多,为了满足人们日常的娱乐功能,手机游戏应运而生。虽然手机游戏受手机设备的限制,很难实现 PC游戏如此复杂、逼真的效果,但是手机游戏以其趣味性和便携性,吸引了众多玩家,玩家随时随地都可以拿出手机,玩一下他们所喜爱的游戏,满足了他们日常的简单娱乐需求。手机上玩游戏使得游戏平
15、台 J2ME得到迅速普及。手机游戏的开发成为了游戏行业的最新热点。随着手机设备的不断提高,手机内存的不断增加,以及 java技术的不断成熟。智能手机目前正以极快的速度在增长,随之而来的便是巨大的手机游戏开发商机。2第 1章 J2ME 介绍J2ME是 sun公司针对嵌入式、消费类电子产推出的开发平台,它与 J2SE和 J2EE并称为 java的三大平台。与 J2SE和 J2EE不同,J2ME 实际只是一系列规范的集合,由 JCP组织制定相关的 Java Specification Request(JSR)并发布 1。每个厂商在生产自己产品时都会按照规范实现相应的 J2ME规则,同时必须要通过 T
16、CK测试,这样才确保兼容性,比如 MIDP2.0规范就是在 JSR118中制定的。1.1 J2ME体系结构J2ME平台主要由配置(Configuration)和简表(Profile)两大部分组成的。配置是J2ME的类库集合,它在满足最大设备需求的同时,自身最小化。配置中同时也包含 JAVA虚拟机。简表是针对一系列设备提供的类库 11。J2ME中有两个最主要的配置,分别是连接有线设备配置(Connected Limited Devices Configuration,CLDC)和连接设备配置(Connected Devices Configuration,CDC)。它们是根据设备的硬件性能进行区
17、分的,随着技术的发展,J2ME 开发网将逐步推出基于 CDC的平台介绍。CLDC 主要针对手机、PDA、双工寻呼机等。下图是 J2ME体系结构的框图:图 1.1 J2ME体系结构图1.1.1 配置层(1)CLDC 称为连接受限的设备配置,针对内存容量较小,并且只有低带宽、间歇式网络连接的低端设备 11。它是为资源有限的小型设备定义的一种标准的、内存占用最小的 JAVA平台。CLDC 主要用于内存 16位或 32的设备,从开发角度说,它的大小限制使得其相比 CDC而言,更有趣、更具挑战性。专家根据这类设备的特点,对标准的 JAVA虚拟机规范进行了精简,去掉了一些冗余的特性,为计算能力有限的低端设
18、备定义了一个小型 JAVA虚拟机。K 虚拟机即 KVM(k 即 kilo) ,也就是说 KVM所需的内存容量仅以 KB来衡量。专家组还为这样的3小型 JAVA虚拟机定义了两部分核心类库,一部分从 J2SE的核心类库中获取,是 J2SE核心类库中定义的类的子集,另一部分是专门针对低端设备特点而设计的类。(2)CDC 称为连接不限设备配置,主要面向高内存,高网络传输速度且网络稳定的高端设备。这类设备通常有固定的供电设备。专家组为这种高端设备定义了功能完善的 JAVA虚拟机(CVM)和此类设备专用的核心类库。CDC 定义的核心类库也有两部分组成:一部分截取至J2SE的核心类库,由 J2SE类库的一部
19、分子集组成。另一部分是专门针对这些高端设备的特点而设计的类。图 1.2显示了 J2SE、CLDC 和 CD 定义的核心类库之间的关系。图 1.2 J2ME配置和 J2SE关系图1.1.2 简表层简表层构建在配置层之上。简表的主要作用是为相同消费电子设备的不同生产厂商提供标准化的 JAVA类库。在简表层之上的是针对设备的功能特性提供 JAVA类库支持,它对配置层的规范进行扩展和补充 12。简表层中对于嵌入式设备按照其应用的领域的不同做了进一步的细分,把相同应用领域的设备归结为一个设备族,同时为设备家族中的通用功能特性提供专门的 JAVA库类支持的。支持不同设备家族的 JJAVA类库分别定义在不同
20、的简表层的规范中。简表和配置结合起来,为嵌入式设备提供了一个基于 java的运行环境,在一个嵌入式设备上只有一个符合其配置规范上 JAVA虚拟机和核心类库,但是对一个配置而言,在其上可以有多个简表规范同时存在。一个简表规范不仅可以直接建立在某个配置规范之上,也可以建立在另一个简表规范之上。应用开发人员应该针对具体的简表和配置规范进行相应的嵌入式设备的开发,这样才保证应用程序在实现相同简表和配置的设备之间是可移植的。目前 J2ME领域里使用最为广泛的便是移动信息设备简表(MIDP) 。在众多的简表规范中,MIDP 是被广泛支持和使用的简表规范,它主要是针对移动信息设备和一些体积较小且处理能力有限
21、的手持设备,这些设备有着屏幕和输入机制的共性。1.1.3 CLDC类库CLDC 的起源可追溯到 1999 年 JavaOne 大会上,Sun 引入了 Java 和 KVM,以及相关的库首的袖珍版本,虽然其他配置 CLDC 的虚拟机,以满足要求,但由于虚拟机本身并没有因此,它的实施是载于在 KVM 10当前版本。 CLDC 是为使用较小的存储设备的设计和开发能力,使用虚拟机是 KVM,这是高度优化的JVM。对于网络连接而言,它是针对有限和间歇的无线连接设备。与事件处理,用户和应用4程序之间,应用程序生存期管理等相关领域是由 Profile来定义的,使用界面的定义也在Profile层的规范之内。
22、CLDC 的有四个包 :java.lang、java.util、java.io 和javax.microedition。1.1.4 MIDPMIDP是 J2ME中第一个实现的 Profile,它主要是针对移动信息设备或体积相对较小且处理能力有限的手持设备。它对设备的要求相对较简单,使用 MIDP的移动信息设备必须有一个显示屏幕和用户输入机制。除了这些硬件要求外,MIDP 还定义了一些相应的软件需求,首先直接 MIDP的设备必须提供管理软件的功能,并能够提供运行 KVM虚拟机的线程。提供可以供程序软件读写的永久存储空间,并且可以访问无线网络,提供显示输出等。要能够接受按键和触屏事件的触发功能。另
23、外还要实现 MIDP应用程序的生存周期安装、选择、启动、关闭和删除的管理。1.2 J2ME WTKWTK 是 Sun公司提供的无线开发工具包,全称是 Sun J2ME Wireless Toolkit它的设计目的是为了帮助开发人员简化 J2ME的开发过程。使用这个工具包可以开发能够在与 Java Technology for the Wireless Industry规范相兼容的设备上运行的 J2ME 应用程序。该工具箱包含了完整的生成工具、实用程序以及设备仿真器 8。WTK是用来开发 MIDP的,为了让 MIDlet可以顺利编译和执行,WTK 必须包含有 CLDC和MIDP的类库,WTK 帮
24、助我们省去了很多额外安装调试这些类库的时间。但是不同版本的 WTK包含的程序库内容是不一样的,每个 WTK版本的内容都不尽相同,如果您在开发中需要某个特定的 jar包而当前的 WTK版本又没有时,您可以简单把这个 jar包拷贝如当前 WTK的 lib文件夹即可。WTK需要有 JDK的支持才能够使用,在安装 WTK前需要先安装完并且配置好 JDK。5第 2 章 J2ME 手机开发环境介绍手机之所以能够时时刻刻伴随着人们的生活,其关键的特性就是便携,并且能够较长时间内脱离电源使用。手机的显示频幕不会很大,输入的方式也单一,电池的电力损耗小,决定了能够在手机上运行的软件也具有相应的特性。最直接的手机
25、开发模式是在手机的操作系统平台上直接进行嵌入式的开发。嵌入式的一般方法是在传统的电脑上编写代码,通过电脑上的手机游戏模拟器进行前期的开发,完成基本测试后利用厂商提供的交叉编译工具在电脑上变成可运行的二进制代码以后,再下载到手机上进行真实环境的测试后才能生产。C、C+语言作为一种运行效率高的语言,被多数开发人员掌握,通过 C/C+的指针特性以及它贴近硬件机能的本质,运用它们开发能够最大限度与硬件平台结合,充分利用硬件性能,实现高性能图形显示。但是很多的情况下,C 函数库并不能满足需求进行实际开发就必须预先准备好函数库。实际上只有在充分利用手机操作系统提供的功能才能达到预期的目标。在使用任何一种语
26、言进行编程时都离不开开发环境,JAVA 语言也不例外,下面逐步将介绍开发环境和怎么配置开发环境。2.1 JDK的安装与配置首先运行 jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008点击“接受”出现自定义安装,更改安装的盘可以自己选择,然后点击“下一步” 。本次安装默认在 C 盘。点击 “完成”即可。接下来是 JDK的配置。(1)点击我的电脑属性高级环境变量点击“新建” ,在变量名输入 java_home ; 变量值输入 D:Program FilesJavajdk1.6.0_10 ,点击确定。如图 2-1。图 2-1输入变量值图(2)同上新建一个同上,新建一个系统变量,变量名为:classpath;变量值:.;%java_home%lib;%java_home%lib tools.jar ,点击确定。注意前面的小圆点必须要有。(3)在系统变量中,点击 Path变量,点解编辑,在变量值中添加:%java_home%bin;%java_home%jre6bin; ,点击确定。