版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、炸弹人游戏在手机上的实现专 业:软件工程学 号: 学生姓名:蔡剑 文 指导教师:万 立 中 摘 要 J2ME虚拟机在手机上的普及为手机游戏的发展提供了最适合的土壤,随后MIDP2.0的发布,特别是其中新增的GameAPI使得手机游戏开发者可以更专注于游戏性的增强而不再是繁琐的动画处理与地图设计,让开发过程变得更加方便迅捷,它是手机游戏发展的重要里程碑。本文完整地描述了如何在Eclipse平台应用J2ME技术,特别是MIDP2.0中新增加的GameAPI在手机上实现一个炸弹人游戏(原型为网游泡泡堂),核心在于其游戏引擎的构建。其中涉及到的技术有Midlet框架、游戏状态机、线程、精灵、地图、关卡
2、、程序优化及兼容性设计等。第一章介绍了J2ME游戏背景,及对论文中术语的约定; 第二章介绍了本游戏的开发平台及要使用的主要技术; 第三章对游戏进行了简单的需求分析; 第四章是游戏的具体实现,并描述一些关键性技术; 第五章是对整个过程的总结,讲述心得与感想。 关键字:J2ME;MIDP2.0;GameAPI;Eclipse;手机游戏;炸弹人;泡泡堂 I 炸弹人游戏在手机上的实现 Implementation of J2ME-Based Game: Bomber Abstract Widespread use of KVM on the mobile phone increases the spe
3、ed of mobile game development. With the release of MIDP 2.0, especially the newly added GameAPI, game developer can concentrate on the enhance of game performance, freeing themselves of animation making and game map design. Game development becomes rapid and more and more convenient. MIDP 2.0 is the
4、 milestone of mobile game development. The thesis introduces the technology of J2ME based on the integrated development environment of Eclipse. It is mainly about the implementation of a gamebomber (The Chinese online game, PopTang, is its prototype). The core of the thesis focuses on the game engin
5、e construction. The technology concerned includes the MIDlet class, thread, sprite, game map, levels, the optimization of the game and its compatibility, etc. The First chapter is the introduction of game background and the terms used in the thesis; The second chapter is about the integrated develop
6、ment environment and the mainly used technology; The third chapter illustrate the demand analysis briefly; The fourth chapter is the concrete implementation of the game and the decription of some key technology used in the game. And the fifth chapter is the summary and what I have learned from the g
7、ame development. Keywords: J2ME;MIDP2.0;GameAPI;Eclipse;Mobile Games;Bomber;Poptang I 炸弹人游戏在手机上的实现 目录 摘 要.I Abstract.I 第1章引言.1 1.1 手机游戏简介.1 1.2 J2ME简介.1 1.2.1 概述.1 1.2.2 配置.2 1.2.3 简表.3 1.3 关于本课题.3 1.4 术语与缩写解释.4 第2章开发平台与主要技术.5 2.1 开发平台.5 2.1.1 Eclipse.5 2.1.2 EclipseME.6 2.1.3 JDK.6 2.1.4 Wireless T
8、oolkit.7 2.1.5 Proguard.8 2.1.6 诺基亚N6070.8 2.2 主要技术.8 第3章需求分析.10 3.1 运行平台.10 3.2 界面要求.10 3.3 速度要求.10 3.4 具体需求.10 3.4.1 主要界面.10 3.4.2 闪屏.11 3.4.3 菜单.11 3.4.4 帮助与关于.11 3.4.5 角色.11 3.4.6 地图.11 3.4.7 泡泡.12 3.4.8 道具.12 3.4.9 游戏规则.12 3.4.10 关卡.12 3.4.11 其它.12 第4章程序实现.13 4.1 整体框架.13 4.1.1 类设计.13 4.1.2 文件结构
9、.15 4.2 启动.16 炸弹人游戏在手机上的实现 4.3 闪屏.18 4.4 菜单.20 4.4.1 模型层.20 4.4.2 视图层.22 4.5 文字换行与分页.24 4.6 地图设计.26 4.6.1 基本结构.26 4.6.2 砖块属性.28 4.6.3 地图绘制.31 4.7 资源准备.32 4.7.1 图形处理原则.32 4.7.2 本游戏的图形资源处理.33 4.7.3 声音资源准备.34 4.8 游戏基本原理.34 4.8.1 状态机.34 4.8.2 线程.35 4.8.3 FPS控制.35 4.9 场景类.37 4.10 图层.40 4.11 炸弹.41 4.11.1
10、创建与回收.41 4.11.2 更新状态.42 4.11.3 爆炸.44 4.11.4 引爆.45 4.11.5 清除爆炸效果.46 4.12 道具.47 4.13 角色.48 4.13.1 创建.48 4.13.2 更新.49 4.13.3 移动.52 4.13.4 设置炸弹.53 4.14 播放声音.54 4.15 资源装载与进度条.54 4.16 关卡.55 4.16.1 保存关卡配置.56 4.16.2 读取关卡配置.58 4.17 兼容性设计.59 4.18 打包与混淆.60 第5章总结.63 参考文献(Reference).64 致谢.65 炸弹人游戏在手机上的实现 第1章 引言1
11、.1 手机游戏简介1998年诺基亚公司年发布了全球第一款内置游戏的手机“变色龙6110”,内置贪食蛇、记忆力、逻辑猜图三款游戏,受到了全世界的欢迎,其他厂商纷纷跟进。那时候的手机游戏都是在手机出厂时固化的,而且要针对不同机型量身订做,因此只是手机厂商吸引顾客一种手段。受当时硬件平台的限制,手机游戏大多简单朴素,可玩性不高。J2ME的普及为手机游戏的发展提供了最适合的土壤。因为JVM的平台无关性使得标准的J2ME游戏几乎可以在所有内置了JVM的手机上运行,一方面提高了游戏的传播性,另一方面提高了开发者的积极性。于是逐渐开始有第三方公司专门从事J2ME游戏的开发,形成了手机游戏产业化。随着硬件水平
12、的发展,手机游戏也一改往日的朴素形象,开始加入了更多的媒体元素,由最早的黑白两色、单音发展到了彩色动画与和弦音效甚至3D加立体声,手机厂商甚至推出了专门的游戏手机,如诺基亚的N-Gage。然而更多的情况下,手机只是PC与游戏机的一种替代。条件满足的话,人们肯定更愿意选择速度与交互性都更加出色的后者。与之相比,手机游戏最大的优势便是其易携性与网络支持性。因为它的易携,使得它可以满足人们随时随地玩游戏的需求,是无聊时打发时间的最好选择。至于网络支持性,在目前网络带宽有限的情况下优势还不明显,预计在将来成为手机网游发展的最大助力。基于以上差别,目前最有可能成功的手机游戏就是那些临时小游戏,它可为广泛
13、的玩家在所有的社交场合提供娱乐。1.2 J2ME简介1.2.1 概述 Java技术是一系列产品的集合,目前主要包括Java2平台标准版(Java 2 platform Standard Edition, J2SE)、Java2平台企业版(Java 2 platform Enterprise Edition, J2EE)、Java2平台微型版(Java 2 platform Micro Edition, J2ME)和Java卡平台。Java技术的体系结构如图 1.2-1所示。 1 炸弹人游戏在手机上的实现 图 1.2-1 Java技术的体系结构J2ME为运行在嵌入式消费类电子产品的设备,如移动电
14、话、PDA、游戏终端之上的应用程序提供了一个健壮的、灵活的环境。与J2SE、J2EE和Java Card一样,J2ME同样包含一个小型的虚拟机和一系列的Java API。J2ME还提供了灵活的图形用户界面、健壮的安全模型、广泛的联网协议支持。目前J2ME平台已经部署到上亿个的设备上,前景非常看好。J2ME平台由多种配置(Configuration)、简表(Profile)和可选包(Optional Package)组成。平台的实现者和应用程序的开发者可以从中选择并组合出一个完整的Java运行环境来满足特定范围内的设备需求。每种组合都应该使这一系列设备的内存、处理器和I/O能力达到最优化。J2M
15、E专家组之所以采取这种灵活的设计结构主要是为了满足市场上不同种类的嵌入式设备的需求,这些设备在软件和硬件特性上都存在巨大的差异,一种规范很难将它们统一起来。1.2.2 配置 目前,J2ME平台主要包括两个配置:CLDC和CDC。 CLDC是两个配置中较小的一个,为具有间断性联网能力、较慢的处理器和有限内存的设备设计的。这些设备包括移动电话、双工呼叫器和入门级的PDA,它们通常具有16位或32位的CPU、128KB512KB可用于Java平台实现和相关应用程序的内存。 CDC是为处理器能力较强、内存空间更大、联网能力更出色的设备设计的。这些设备包括电视机顶
16、盒、车载娱乐系统、高端PDA等。CDC包含一个具有完备特性的Java虚拟机,比CLDC更大的J2SE平台的子集。CDC的目标设备通常具有32位或者64位的处理器,2MB以上的可用于Java平台实现和相关应用程序的内存。 2 炸弹人游戏在手机上的实现 1.2.3 简表 CLDC1.0规范推出之时并没有引起业界的广泛关注,因为你很难基于CLDC开发出有用的应用程序。Sun随后发布了MIDP1.0规范,整个移动开发社区为之震动。因为MIDP为开发者提供了应用程序模型、用户界面、持久性数据存储等高层的API,这使得为移动终端设备开发可视化应用程序成为可能。移动信息设备简表(MIDP)是为移动电话和入门
17、级PDA设计的。它为移动应用程序提供了所需的全部核心功能,包括应用程序模型、用户界面、持久性数据存储、联网能力(在CLDC中定义,在MIDP中实现)及应用程序管理。目前应用非常广泛的MIDlet就是在MIDP中定义的。CLDC与MIDP组成的完备Java运行环境提升了手持设备的能力,并且最小化了设备内存和电源的消耗。1.3 关于本课题 泡泡堂游戏由韩国NEXON公司开发,在炸弹人游戏的基础上增加了网络对战功能与丰富的道具元素,应用了多彩的游戏动画和可爱的人物形象,一上市就获得了相当广泛的欢迎。图 1.3-1 NEXON公司的泡泡堂本课题将在手机上实现一个单机版的泡泡堂游戏,继承原泡泡堂可爱的人
18、物形象与道具元素,实现玩家与电脑之间的对战。核心目的在于使用J2ME技术构建一个完整的游戏引擎。 3 炸弹人游戏在手机上的实现 1.4 术语与缩写解释 KVM: 全称Kilobyte Virtual Machine,J2ME虚拟机; IDE: 全称Integrated Development Environment,集成开发环境; WTK: 全称Wireless Toolkit,是Sun公司发布的J2ME应用开发套件; MIDlet: 一个MIDP应用程序称作MIDletMIDP小应用程序,这个概念与J2S
19、E中的applet十分类似; JAR: 全称Java Archive File,是Java的一种文档格式。本文中用以代指J2ME程序经编译后的执行文件,可以传至手机中直接运行; NPC: 全称Non Player Character,即“非玩家控制角色”; FPS: 全称Frames Per Second,即每秒刷新帧数; AI: 全称Artificial Intelligence,即人工智能; 4 炸弹人游戏在手机上的实现 第2章 开发平台与主要技术2.1 开发平台 本游戏开发平台为Eclipse3.2.
20、2 + EclipseME1.6.6 + JDK1.5.0.9 + Wireless Toolkit 2.5 + Proguard3.6,模拟测试平台为N6230、N6255、WTK模拟器与semc_java_me_cldc_sdk_2_2_4(索爱全系列模拟器),真机测试平台为诺基亚N6070、诺基亚N6080、索爱K750C、摩托罗拉V1。图形处理工具为Fireworks 8.0、ACDSee 3.1、PNG Mate 2.0。2.1.1 Eclipse 2001 年11 月 IBM 宣布捐出了价值 4 千万美金的开发软件给开放源码的Eclipse 项目。Eclipse 是替代IBM Vi
21、sual Age for Java(以下简称IVJ)的下一代IDE 开发环境,但它未来的目标不仅仅是成为专门开发Java 程序的IDE 环境,根据Eclipse 的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。更难能可贵的是,Eclipse 是一个开放源代码的项目,任何人都可以下载Eclipse的源代码,并且在此基础上开发自己的功能插件。也就是说未来只要有人需要,就会有建立在Eclipse 之上的COBOL,Perl,Python 等语言的开发插件出现。同时可以通过开发新的插件扩展现有插件的功能,比如在现有的Java 开发环境中加入Tomcat 服务器插件。可以无
22、限扩展,而且有着统一的外观,操作和系统资源管理,这也正是Eclipse 的潜力所在。在本项目中,Eclipse正是通过第三方插件实现了开发J2ME应用。图 2.1-1 Eclipse启动画面 5 炸弹人游戏在手机上的实现 图 2.1-2 Eclipse工作区界面网站:2.1.2 EclipseME EclipseME是Eclipse的一个插件,通过安装它以使得我们可以在Eclipse下开发J2ME应用。我们可以像建立普通Java Project一样建立一个J2ME Midlet Suite,并调用WTK下的模拟器来运行或者调试它。网站:2.1.3 JDK 即Java Development K
23、it,是开发Java应用的基础,Eclipse的运行也要依赖于它。 6 炸弹人游戏在手机上的实现 图 2.1-3 JDK1.5.0.9 2.1.4 Wireless Toolkit Wireless Toolkit(以下简称WTK)是Sun提供的J2ME开发工具,用以编译J2ME程序,并且内置了模拟器和分析工具用于运行调试。因为它只提供一些基本的功能,并不是一个高效的IDE,所有人们一般在其它IDE下编写代码,再调用WTK来编译与运行。图 2.1-4 WTK2.5 7 炸弹人游戏在手机上的实现 2.1.5 Proguard Proguard是一个出色的混淆器,用以增加程序被破译的难度,并可以减
24、小最后生成jar的体积,后文中将会详细的应用介绍。2.1.6 诺基亚N6070 操作系统:Nokia S40 2nd 网络频率:GSM/GPRS/EDGE;900/1800/1900MHz 屏幕参数: 65536色CSTN彩色屏幕;128×160像素; Java扩展:CLDC1.1;MIDP 2.0 内存堆栈:1M Byte 2.2 主要技术 本游戏实现大量应用了MIDP2.0中的用于游戏开发的类库,即GAME API。这组简洁的API放在javax.microedition.lcdui.game包中。下面介绍一下各个类的用途。 GameCanvas类GameC
25、anvas是Canvas的子类,它代表了游戏的基本界面。在GameCanvas上进行绘图代替了直接在Canvas绘图。GameCanvas的主要改进在于它自动实现了双缓冲,并提供了轮询键盘输入事件的方法。使用GameCanvas可统一游戏的基本框架。 Layer类Layer类是一个抽象类,代表了界面的一个基本显示单元。每一个Layer都有位置、大小、可见性等属性,以及更改这些属性的方法。我们并不直接使用Layer类,而是使用它的两个子类Sprite类和TiledLayer类。 图 2.1-5 N6070 8 炸弹人游戏在手机上的实现 LayerMana
26、ger类LayerManager类负责管理Layer,并通过按照一定的顺序在画布上进行来实现分层次的自动渲染。LayerManager还提供了一个可视窗口的概念(View window),因为游戏地图往往比界面画面大很多,通过设定当前可视窗口的大小和位置,可以轻松地实现滚屏等常见效果。 Sprite类Sprite类是Layer的一个子类,它面上的意思是“精灵”。这是一个游戏开发的专有名词,代表了界面上一个基本的可视单元。这个词早在红白机1之前的游戏开发中就被使用了,并沿用至今。例如,在一个追逐游戏中可能有两个Sprite对象:猫和老鼠。一个Sprite对象一表会包含好几帧画
27、面,按照一定的顺序和频率显示这些帧来实现动画的效果。Sprite类还提供了画面的翻转、旋转及简单的碰撞检测等。 TiledLayer类TiledLayer类是Layer的另一个子类。Tile也是二维游戏开发的一个经典词汇。你可能听说过基于砖块的游戏这一提法,它的思想是把界面的背景画面划分成一个二维的表格,并使用不同的图像砖块去填充它。这样,只要用几个不同的图像砖块就可以组合出很大的图片,而所占的资源空间仅仅为原先的几十分之一甚至更小。实现一个健壮的Tile类需要花费一些成本,幸运的是TiledLayer就是基于Tile的地图的一个很好的实现。使用它可以方便地构建起美观的游戏
28、地图。1 1983年日本任天堂公司推出其第一代家用电子游戏机系统“Family Computer”,因其由红白两色组成而被俗称为“红白机”。 9 炸弹人游戏在手机上的实现 第3章 需求分析3.1 运行平台 本游戏目标运行平台为所有支持CLDC1.1、MIDP2.0,屏幕分辨率不小于128×128的手机设备,并要求在各型号手机上均有良好的兼容性。3.2 界面要求 参照原版泡泡堂游戏,要求精致、美观,人物形象可爱。所有界面均须使用低级UI绘制。3.3 速度要求 要求在满足平台需求的各手机上运行时画面流畅,声音播放正常,操作无明显延迟感。3.4 具体需求 3.4.1 主要界面 要求游戏具有
29、闪屏(Splash)、菜单、游戏主界面、帮助、关于等界面,各界面切换关系如图 3.4-1所示: 进入游戏Splash1毕设介绍Splash2游戏Logo主菜单进行游戏退出帮助关于游戏结束通关/死亡图 3.4-1 游戏界面间切换 10 炸弹人游戏在手机上的实现 3.4.2 闪屏 要求显示游戏菜单前,必须先自动、连续显示两个闪屏,第一个闪屏用于显示南昌大学徽标、南昌大学校名文字、及毕业设计字样等信息;第二个闪屏用于显示所设计的程序的图标、程序名称及版本等。两个闪屏的显示由时间控制,自动消失,也可以接受用户的按键事件,用户在任何一个闪屏按任意键,当前闪屏自动消失。闪屏图案排列要考虑多种方案,如果对于
30、128x128左右的小屏幕,则不显示南昌大学徽标,如果大屏幕,则显示全部图案,且游戏菜单无论在大、小屏幕都要垂直、水平居中。3.4.3 菜单 游戏者可通过菜单界面可选择开始游戏、帮助、关于、退出游戏。 3.4.4 帮助与关于 游戏者可通过菜单进入帮助或关于界面查看游戏规则与基本操作及关于信息,该界面必须实现中英文的换行显示及上下键滚动屏幕或翻页功能。3.4.5 角色 a) 游戏有玩家与敌人(后文中均NPC指代)两种游戏角色,玩家只能有一个,由游戏者控制,敌人可能有多个,由游戏人工智能控制。b) 角色出生时具有基本的移动速度、泡泡数目属性,这些属性可在获得相应道具后得到提升。c) 角色可以在地图
31、允许的单元格内朝上下左右进行移动、放置炸弹、拾获道具。d) 如果玩家移动方向上有可移动建筑,且该建筑同方向上下一位置无建筑或建筑具有可通行属性,则移动该建筑到下一位置,实现“推动”效果。e) 所有角色唯一的死亡方式为被自己或对方的泡泡炸死。 f) 玩家被炸死后可在原出生地复活,敌人生命仅有一次。 g) 角色有多种动画状态,如下: 出生状态,显示角色在原地旋转动画; 移动状态,显示角色上下左右移动动画; 休息状态,一段时间无指令后,角色进入休息状态,显示眨眼睛动画; 死亡进行状态,角色死亡后显示一段跳起落地的
32、动画,并伴随闪烁; 已死亡状态,角色消失。 3.4.6 地图 游戏地图为N×N的网格,包括地表贴图与地面建筑。地面建筑包括三种属 11 炸弹人游戏在手机上的实现 性,分别为可破坏、可移动、可通行,每一个地面建筑物可能拥有其中一种或多种属性。可破坏的建筑被破坏后将消失,并有一定概率在原位置产生一个随机道具。3.4.7 泡泡 即炸弹,角色可以在地图允许的单元格内放置泡泡,在一定延时后爆炸,爆炸后以炸弹所在位置为中心向上下左右产生冲击波。冲击波有如下特性: 可穿透角色,导致角色死亡; 可穿透道具,使道具销毁; 可穿透具可通行属性的建筑; 遇不可破坏建筑或地图边界后中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合肥信息技术职业学院《材料成形工艺基础》2025-2026学年期末试卷
- 2026年陕西省西安市社区工作者招聘笔试模拟试题及答案解析
- 福建卫生职业技术学院《工程数学》2025-2026学年期末试卷
- 2026年泸州市纳溪区社区工作者招聘笔试参考试题及答案解析
- 2026年河南省濮阳市城管协管招聘笔试备考题库及答案解析
- 2026年枣庄市山亭区社区工作者招聘考试模拟试题及答案解析
- 2026年南昌市湾里区社区工作者招聘考试备考题库及答案解析
- 2026年四川省宜宾市社区工作者招聘考试备考试题及答案解析
- (新)食品安全管理规章制度(食品经营许可证)(3篇)
- 2026年湘潭市岳塘区社区工作者招聘笔试参考试题及答案解析
- 2026年浙江广厦建设职业技术大学单招职业适应性测试题库参考答案详解
- 2026年云南省政府采购评审专家考前冲刺备考300题(含答案)
- 2025年医疗设备回收项目可行性研究报告及总结分析
- GB/T 15763.2-2025建筑用安全玻璃第2部分:钢化玻璃
- 燃气站场施工技术交底
- HSE绩效考核评分表
- 瞿秋白介绍教学课件
- 燃气行业法律知识培训课件
- 2025年小学生科技素养知识比赛题库及答案
- 【中考真题】四川省宜宾市2025年中考化学真题(含答案)
- 2025年经济师考试金融高级经济实务试卷及解答参考
评论
0/150
提交评论