分享
基于J2ME MIDP2的手机游戏的开发与实现计算机专业.doc
下载文档

ID:875078

大小:410.67KB

页数:29页

格式:DOC

时间:2023-04-15

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于J2ME MIDP2的手机游戏的开发与实现 计算机专业 基于 J2ME MIDP2 手机 游戏 开发 实现
第一章 引言 1.1 手机软件及游戏概述 1.1.1 手机软件概述[1] 当今世界,各种智能消费类电子产品,如移动电话、PDA、电视机顶盒等设备呈现爆炸性增长,其数量大大超过了桌面PC。其中手机可以说是最多人拥有的终端设备。这在带给人们更多方便的同时,使用面的广泛也为手机软件带来了巨大的市场。随着手机能力的增强,传统的娱乐、工作、信息交互和共享等事务越来越拓展到以手机为代表的移动设备上完成。传统的手机再也不能满足人们日益提高的要求,因为它们有以下弊端: * 出厂时所有应用程序并操作系统都已固化在硬件中,不能增、删、改,要想获得新的服务,必须再购新机。如果不小心将固化程序删改,还可能导致机子报废; l 访问互联网是通过WAP(Wireless Application Protocal),所有网络资源必须接通网络才能在线访问,非常耗时,费用也高。 而Java技术在这方面的优势非常明显: l 应用程序可按需下载,可升级空间大; l Java技术提供了一个类库,它使的应用开发商可以创建更为直觉、丰富的用户界面(GUI); l Java技术使网络带宽的应用更为有效,因为应用程序可以下载到器件上,并在本地运行,仅仅是在连接到服务器时才会占用网络带宽。 综上所述,手机软件已经有了很大的市场,而且前景仍然广阔。而Java手机是未来手机的发展方向,是业界的热点。 1.1.2 手机游戏概述 无论在PC还是手机平台上,游戏软件总是受到热烈的欢迎。从最初的贪食蛇到如今的仙剑奇侠传手机版,手机游戏也从尝试走向了成熟。 手机硬件的发展为高品质游戏的出现奠定了基础。一代代的高端手机不断突破原来的功能平台,硬件性能显然已超过了早期的微机(386时代前的计算机),智能操作系统的出现更是将手机这一载体推向了另一个高度。于是,一系列游戏精品应运而生。 游戏精品为手机游戏带来了广阔的市场。手机游戏以其便携、简单、休闲等特点赢得了各个年龄段的无数爱好者。一款好的手机游戏能在几个大网站的相应版面引发热烈的讨论,其火爆程度不亚于一款PC游戏。手机游戏发展至今,其影响力已经甚为巨大。 1.1.3手机游戏的特点[7] 首先,手机游戏是容易盈利的。当今影视DVD、PC软件等数字商品的正常盈利因盗版遇到重重障碍。而手机游戏虽也属数字产品,但相比于上面几种产品,已有一条成功的盈利途径,且可操作性强。那就是将游戏发布在手机可上的网络上供用户下载,酌情收费。主要有两种策略: 1、一遇下载则从该用户手机费中扣除相应费用即可; 2、将程序分为几段(如两个关卡为一段,或得多少分为一段),每到一段结束,即运行嵌在游戏中的续费程序,提醒用户用手机续费,否则不能继续游戏。 当然,还是有很大一部分用户可以通过互联网上免费下载来获得游戏,但由于手机游戏涉及面太广,需求量巨大,单个产品又都不贵,使得这个市场商机无限。一个成功的手机游戏本身应具有如下几个特点: 1、易于学习: 由于手机有便携的特点,手机游戏一般是用户在工作间隙、等待期间、晚上睡前等零碎时间里方便的消遣工具,而不会花太多时间去研究。保持游戏的简单是最基本的要求。 2、可中断性: 多任务处理是手机生活方式的基本特征。一个好的手机游戏应该提供短时间的娱乐功能,并且允许用户在游戏和工作模式之间顺利切换。 3、基于订阅:手机游戏的盈利成功取决于他们巨大的使用量。基于订阅的游戏是不断产生收入的最好方法。 4、无违法内容:既然所有年龄/性别的人群都玩手机游戏并且常常在公共/工作场合,就应该避免明显的暴力或者色情内容。 1.2 J2ME概述 1.2.1 J2ME的形成[1] 1998年1月,在Sun的实验室里启动了Spotless项目,以研究Java编程语言应用于资源受限的设备。Spotless项目的产品化版本就是现在众所周知的K虚拟机(K Virtual Machine ,KVM)。后来摩托罗拉、诺基亚、西门子、NTT DoCoMo和RIM等其他移动设备制造商和运营商加入到KVM开发阵营。JCP(Java Community Process)在1999年9月10月先后颁布了移动信息设备简单MIDP和互联受限设备配置CLDC两个规范,后来又陆续发布了其他一些规范,这些标准成果形成了Java平台微型版本(Java 2 Platform ,Micro Edition,J2ME)。 如今J2ME平台已成为最成功的手机游戏平台。因为J2ME应用在不同设备上都是便携式的,而且 Java被设计成一种安全的语言,所有字节码应用在执行之前都要校验。它的这些非常重要的特征对所有组织都有益。 1.2.2 J2ME体系结构概述[1] J2ME所面对的是大量不同的设备,它们在外观和功能上均各不相同。J2ME在对这些设备进行分类时,将一些共性提取出来形成适合于某个范畴中设备可用的规范称为配置(Configuration),包含虚拟机和核心的类库;J2ME将某一行业或领域内设备的特性提取出来,形成简表(Profile),指的是某个行业或某个领域内特定的特性总结。 J2ME分为两个配置:一个是CDC(Connected Device Configuration),另一个是CLDC(Connected Limited Device Configuration)。它们所针对的设备的CPU和内存是不一样的,所以它们所使用的虚拟机和核心类库也不相同。 简表面向配置之上的纵向设备,定义了配置之上受支持设备的类型。 在CDC上目前定义了Foundation Profile、Personal Basis Profile等简表;在CLDC上定义了Mobile Information Device Profile(MIDP)等简表。本文要介绍的程序就是在MIDP2.0的基础上编写的。 1.3 本章小结 本章回顾了手机软件的发展,展望了其广阔的前景;分析了手机游戏业务的诸多特点;介绍了J2ME的体系结构。由此描述了本论文的相关背景。 第二章 开发环境搭建 2.1 开发工具概览 操作系统: Microsoft Windows XP SP2 程序语言: Java 2 开发工具: Java(TM) 2 Platform Standard Edition (J2sdk 1.5.0) JBuilder 2006 Photoshop cs Motorola SDK 上述工具的安装与环境的配置很简单,且不是本文重点,故不再赘述。 2.2 关于JDK JDK 是整个Java的核心,提供了虚拟机来运行程序。它包括了Java运行环境(Java Runtime Envirnment), Java基础的类库(rt.jar),以及编译器、打包工具、文档生成器和查错工具等基本组件。不论什么Java应用服务器实质都是内置了某个版本的JDK。最主流的JDK是Sun公司发布的JDK。 2.3 关于WTK[2] WTK(Wireless Tool Kit)是Sun公司针对J2ME推出的用于手机和Palm等移动设备的开发包,是除手机厂商的专用开发包外唯一的手机模拟器开发包。它通用性高,开发出的应用程序可保证能运行在大部分设备上,而不像专用厂商具有一定的不兼容性。虽然它没有强大的功能和完善的调试手段,但它提供运行模拟器的最基本组件,是其他IDE需集成采用的必备元素 2.4 关于JBuider 2006[3] JBuilder是Borland公司开发的针对Java的开发工具,拥有众多的开发者。使用JBuilder将可以快速,有效的开发各类java应用,它使用的JDK与SUN公司标准的JDK不同,它经过了较多的修改,以便开发人员能够像开发Delphi应用那样开发java应用。JB7和JB8通过加入mobile set包并且和Nokia开发平台相集成的方法开发MIIDP程序,JB9已将JDK与WTK集成在软件中。JBuilder2006是JBuilder系列的最新版本。 2. 4 关于Photoshop cs 和Motorola SDK Photoshop在此只是一个辅助软件,不再过多介绍。它负责将游戏中用到的各种图片加工并保存为PNG格式,这是手机唯一能准确识别图片的格式。 Motorola SDK是摩托罗拉公司专有的SDK。在本设计中仅仅用到它的模拟器。由于手机游戏存在移植性差的特点,所以只有选择一款确定的手机,才能将游戏的画面等各项元素做到最好。本设计选用了Motorola V360i模拟器 2. 5 本章小结 本章针对要开发的程序介绍了相关的软硬件环境及开发工具。 第三章 作品概况、结构及相关技术 3.1游戏特点详述 1、本游戏名叫荣耀飞车,基于MIDP2.0设计开发。其中用到了Game包等MIDP2.0新增的特性。游戏实现了全新游戏、游戏帮助、游戏存储和读取、退出游戏等基本功能,还加入了金钱、经验、不同的车辆等RPG元素,更有充满趣味的称号、道具等系统。这些比较复杂的系统的加入,不但使程序用到了更多的基本技术,也使得开发者更要注重各个类之间的逻辑关系,才能准确地做出相应的效果,而不只是实现一些通用的基本功能模块就能完成任务。 2、本游戏是俯视角赛车游戏,游戏中会遇见山石、河流等障碍阻止选手顺利到达终点,但用户可以依靠熟练的操作、获得的称号,以及从赛道上得到的道具来克服困难。 3、菜单的实现方法放弃了相对简单的高级用户界面,采用复杂却灵活多变的低级用户界面技术。游戏中共有五个菜单,虽基本原理大同小异,但由于使用低级用户界面,使它们的外在表现丰富多彩,毫无重复之感。 4、作为设计核心的赛道地图采用新增GAME包中的“背景图层(TiledLayer)”和“精灵(Sprite)”技术,赛车始终在屏幕的下方,而地图自动以当前赛车速度向下滚动。在左上角可以看到车辆当前获得的道具数、生命值和速度;右上角显示剩余时间。时间耗尽或车辆生命值小于零,游戏失败。顺利冲过终点则获胜,并根据剩余的时间和生命值获得相应的金钱经验。若达到了某种条件,还能获得称号,对以后游戏有帮助。 5、主菜单上的读取游戏选项可将上次存储的游戏参数读出,并继续上次的游戏。 6、由于手机的资源非常有限,所以程序还要进行一些内存优化。上述各模块的算法和具体代码将在第四章详细介绍。 7、J2ME参考文献很多来自各大网站。 3.2 程序详细流程 程序采用面向对象的设计模式。各类是用与类名称相同的文件名存储的,且尽量用其实现的功能命名,以不致混乱。如主菜单类就用MainList命名。 进入游戏后,先出现LOGO画面,显示欢迎字样和作者信息,持续三秒,然后进入主菜单。选择“全新游戏”后,填入ID,选择车辆,就进入“大厅”这个主菜单后又一重要的导航界面。可以选择“进入比赛”,选好跑道,就正式开始赛车游戏了。程序中的一个开关语句会根据用户选择的不同跑道调用不同的绘图函数,对背景的所有物体进行绘图。在主程序运行的线程中,画面刷新将以一定的频率采用双缓冲技术对屏幕重绘,实时反映整个游戏的进行状态。玩家控制的赛车就运行在主线程中,随屏幕刷新的频率而活动。在屏幕重绘的主程序中,将在每次的循环中判断若干事件。如:玩家控制的赛车生命值点数,玩家是否与其它图层碰撞,玩家的道具是否已使用等,由此执行相应的代码产生正确的效果。比赛一开始出现三秒倒计时,然后用户就能控制赛车移动了。胜负判定后,出现“公告板”显示本场游戏所获的金钱、经验,及得到或失去称号的提醒信息。“公告板”界面的两个软键的功能分别是保存游戏和回到“大厅”继续下一盘游戏。游戏详细流程图如下所示: (图3.1 游戏详细流程图) 3.3 游戏相关技术 3.3.1 MIDlet [2] 在MIDP中,应用程序称为MIDlet,因为每个MIDP应用程序都需要继承自MIDlet类。MIDlet的生命周期定义了MIDlet的各种状态以及各种状态之间如何转换。它可以利用如图3.2的

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开