ImageVerifierCode 换一换
格式:DOCX , 页数:61 ,大小:679.76KB ,
资源ID:12058776      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12058776.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于J2ME任务类手机游戏的设计与实现毕业设计.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于J2ME任务类手机游戏的设计与实现毕业设计.docx

1、基于J2ME任务类手机游戏的设计与实现毕业设计SJ005-1CHANGZHOU INSTITUTE OF TECHNOLOGY毕 业 设 计 说 明 书题目:基于J2ME的任务类手机游戏的设计与实现二级学院: 计算机信息工程学院 专 业: 通信工程 班级: 10通信 学生姓名: 黄丹 学号: 10030309 指导教师: 杨雄 职称: 讲师 评阅教师: 职称: 2014年 6 月基于J2ME的任务类手机游戏的设计与实现摘要J2ME(Java 2 Micro Edition)是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。随着

2、手机的日益普及,Java应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本文介绍了J2ME的相关技术及本程序的结构分析和具体的实现。以射击类游戏为实例,对游戏整个生命周期中的各个开发阶段进行了详细的介绍。首先分析了开发软件的可行性。其次对游戏界面进行分层,从每个层面的功能进行需求分析。然后,针对本设计的结构和功能进行了介绍,这也是本文的重点。为了保证代码的正确性和功能实现的可靠性,本文还介绍了程序调试过程中遇到的错误,展示了游戏的运行界面。关键词:J2ME,手机游戏,MyEclipse,WTKDESIGN AND IMPLEMENTATIO

3、N OF TASKS GAMES IN J2MEAbstractJ2ME (Java 2 Micro Edition) is a Java language platform for set-top boxes, mobile phones and PDAs kind of embedded consumer electronics devices, including virtual machines and a series of standardized Java API. With the growing popularity of mobile phones, Java applic

4、ation generates mobile value-added services gradually reflect its influence on peoples lives rich content, plays an essential role in providing easier access to information.This article describes the structural analysis of J2ME technologies and the implementation of procedures and specific. In shoot

5、ing games as an example, the game throughout the life cycle of the various stages of development for a detailed description. First, Analysising of the feasibility of developing software. Second, the game interface stratification, needs analysis from every level of functionality. Then, for the struct

6、ure and function of this design were introduced, which is the focus of this article. In order to ensure the correctness of the code to achieve the reliability and functionality, the paper also describes the error encountered during debugging, showing the game running interface.Key words: J2ME, Mobil

7、e Games, MyEclipse, WTK前 言进入21世纪以来,随着科技的不断发展,手机、笔记本电脑、pad等等移动设备已经普及到社会的各个角落。与此同时,越来越多的科技公司开始开发在专门为移动设备设计的应用软件。这些应用软件的出现使得移动设备拥有更加强大的功能,在人机交互方面表现也更为出色。数据统计显示,去年全球有560亿应用下载次数,每季度应用开发的个数增长达到了223.2%,全球android系统设备的保有总量也达到了5亿台。在现实需求下,移动设备软件的开发未来几年都将是一个热门领域,基于J2ME的android平台应用程序开发也的得到了广泛关注。本论文主要概述了基于J2ME的手机

8、游戏开发过程。首先阐述了开发时所需要的JDK实验环境,其次是开发工具的使用、WTK配置开发环境。本文详细介绍了手机游戏的开发步骤和项目流程,希望读者阅读完本文之后会有所收获。第1章 绪论1.1手机软件的现状目前的手机大多采用IOS,Android,WP三个系统,其中使用用户最多的是Android系统,而Android系统就是遵守J2ME的规范开发出来的。虽然J2ME和PC中的Java相比有许多的限制,但是已经可以满足开发手机游戏的各项需求,使用J2ME开发得到的游戏可玩性和画面精美度都非常高。与以前的手机相比,Android系统有着更加友好的操作界面和操作方式,并且支持无线网络的连接,配备有许

9、多丰富多彩的应用软件。传统的手机有很多的缺点:传统手机中的软件是固化的,无法更新软件。手机在连接网络的时候都需要通过WAP(Wireless Application Protocol)访问网络,这种连接方式耗时与费用都很高。随着J2ME的技术成熟与采用Android系统手机的出现,这些问题也被完美解决。开发商只要遵守J2ME的编程规范,就可以开发出运行在Android平台上的手机软件应用。手机使用者只需要在网上商城下载想要的应用,就可以随时更新手机中的软件,现在手机软件下载中比较多的就是游戏软件,所以本文主要介绍了开发一个J2ME手机游戏的基本步骤和注意事项。目前Java手机已经普及,开发出实

10、用好玩的基于J2ME的Java手机游戏已经成为了手机游戏发展的重要方向之一。1.2 J2ME的介绍Java ME 以往称作J2ME(Java Platform,Micro Edition)包括了J2SE的核心API以及其独有的一些API,为一些小型的设别提供Java的语言平台。J2ME和J2SE,J2E一样是通过JCP(Java Community Process)制订的,它们是Java的三个分类。J2ME架构分为了Configuration、Profile和Optional Package三类,这三类也组成了基本的运行环境。这样分类可以在实现标准化和各种版本的兼容性的同时满足了程序对不同方面

11、的各种需求。与J2SE和J2EE相比,J2ME的每个程序功能有所局限,而且限制比较多,但是J2ME的运行环境更加的多样化。Configuration主要是把设备按存储和处理能力进行分类,其定义了虚拟机特性和基本的类库。已经标准化的Configuration有Connected Limited Device Configuration(CLDC)和Connected Device Configuration(CDC)。Profile在Configuration基础上建立,与Configuration构成了整个运行环境。它针对特定领域进行分类,主要包括特定用途的类库和API。CLDC上已经标准化的

12、Profile有Mobile Information Device Profile (MIDP)和Information Module Profile(IMP),而CDC上标准化的Profile有Foundation Profile(FP)、Personal Basis Profile(PBP)和Personal Profile(PP)。Optional Package(可选包)独立于前面两者,提供更为多样化的功能。目前有数据库访问、多媒体应用、蓝牙等可选包。1.3 MIDPMIDP(MobileInformationDeviceProfile,移动信息设备描述)是一套Java应用的编程接口(

13、ApplicationProgrammersInterfaces(APIs)。它们与有限连接的设备配置(ConnectedLimitedDeviceConfiguration,CLDC)一起向诸如蜂窝电话等移动信息设备提供了一个完整的Java应用运行的环境。MIDP中一般包括了下列API包:Javax.microedition.lcdui-用户界面的(UI)API,它为MIDP应用提供了很多实现用户界面功能的特性;Javax.microediton.rms-移动设备的信息描述提供了一种让MIDlets永久储存数据的机制,而且在以后的使用中能够取回这些数据。Javax.microedition.

14、midlet-这个MIDlet包明确定义了MIDP的应用,也定义了环境与环境之间的交互。Javax.microedition.io-移动信息设备描述了基于有限连接设备配置的GenericConnection框架的网络支持。MIDP的系统结构大致分为了4层:操作系统层、CLDC、MIDP和MIDP应用程序。MIDP中的API十分的好用,而且可以在各个平台上使用,用其开发的程序几乎不用改动就可以在设备上运行,这给代码的开发和维护减轻很多的工作量。1.4 打飞机游戏概述本文所开发的J2ME射击类手机游戏是通过对玩家控制对象,也就是一架飞机的生命值进行判断,来确定是否能够通过关卡。其中飞机的控制由按键

15、监听器来实现。游戏中还增加了道具包的功能,目的是增加游戏可玩性和趣味性。1.5 本章小结本章首先介绍了采用Android系统的手机发展现状,然后概述了J2ME的相关内容,分析了J2ME在手机中软件开发中起的重要作用,描述了本文的相关背景。在开发J2ME软件的时候,有些很方便的开发工具,也有很多现成的API供选择,只要利用好了这些资源会使得开发十分方便。下一章节将要介绍开发游戏所需要的软件环境。第2章 游戏开发环境2.1开发环境及相关技术的介绍2.1.1 开发环境手机游戏真正地运行环境是各种类型的设备,但在手机上直接开发明显是不现实的,也许在未来会有相应的技术实现终端开发。但现在还是在PC机上搭

16、建虚拟平台来实现模拟运行。本开发使用的操作系统是windows7,使用的IDE为MyEclipse,之所以选择此IDE因为它是用Java语言开发完成,使用时更加方便,绝大多数Java开发工程师都使用此款软件。除了Eclipse之外,也有许多其他IDE这里不做介绍。本设计使用的WTK为最新版Sun Micro.J2ME Wireless Tool Kit 2.2,这会在下面的小节详细介绍。JDK是开发Java软件必不可少的文件。本程序运动JDK7.0,现在最新的版本是JDK8.0但使用不太广泛,大多的公司使用JDK6.0,很少一部分使用JDK5.0,所以本设计会有很小的几率出现版本不支持的bug

17、。2.1.2语言特点1.跨平台Java是一个跨平台的编程语言,只要实现了Java的虚拟机,Java就可以用一样的代码,在不同的平台上实现相同的效果,就像Java推出时的口号一样“一次编译,到处运行”。这种跨平台的性能对Java的推广是十分有用的,设想一下,当你在一个Windows中完成编译了一个程序可以完美的运行并且实现功能,这时候你又想在Linux中也有这样一个程序,你只能在Linux中重新写这个程序,可是这个程序实现的功能又和Windows中的一模一样,大大浪费了开发者的时间。有了Java以后,只需要在Linu中实现Java的虚拟机就可以把Windows里的代码完全复制到Linux中,照样

18、完美运行。JVM(Java虚拟机)这也是Java如此炙手可热的原因之一。2.安全性从Java公布以来,Java的创始人就大力支持对Java的安全性的研究,制定了供人们使用的规范,实现了虚拟机和安全库,并迅速地处理了所有已知的安全bug。在任何情况下,想要蒙骗Java的安全机制将是非常困难的。如今,发现bug的技术越来越强,发现bug的数目也越来越少。3.面向对象面向对象时一种程序设计技术,它和传统的面向过程的编程语言不同。拿画画来当比方说,如果你是面向对象的,你最关注的是你这幅画,然后才是颜料画笔等这些工具。如果是非面向对象的,你会关注你有什么工具,然后才是你所要画的那副画。现在没有一个编程语

19、言是不使用面向对象的概念来开发的,面向对象更加有效的实现了编程的代码。4.网络技能Java中有一个扩展的示例程序库,提供了各种用HTTP或FTP协议传送信息和接收信息的库函数。Java应用程序可以通过URL打开和访问网络上的对象,其方便程度就像是在访问本地文件一样。5.健壮性在Java中没有指针,而是提出了引用这个概念。其本质就是对指针的操作, Java把指针封装到了对象中,通过对象来对指针进行各种操作。C+中是直接对指针进行操作,这样提高了数据的安全性。在没有指针的语言里,非常多的数据结构都很难实现。但是Java具有了双方的优势。它不需要去使用指针构造字符串、数组等等的结构。如果有必要的话,

20、Java也可以具有操作指针的能力。Java是绝对安全的,因为它永远也不会去使用一个有错误的指针。2.2关于开发工具Eclipse 是一个开源的而且基于Java的可扩展的开发平台。就其本身来说,它就是框架和一组服务,用于通过各种插件组件构建的开发环境。值得庆幸的是,Eclipse中附带了一个标准的插件集,其中包括了Java的开发工具(Java Development Kit,JDK)。Eclipse大多都是用于Java的集成开发,但其功能不仅仅是服务于Java语言。Eclipse 中是包括插件开发环境的(Plug-in Development Environment,PDE),这个组件主要就是针

21、对希望扩展 Eclipse软件的开发人员,因为Eclipse运行开发人员构建自己所需要的环境。由于 Eclipse 中所有工具和功能都是插件,开发人员有一个共同的场所来给Eclipse提供插件,或者是给用户提供新的功能。这种平等的特性不仅仅适用于Java开发工具。虽然 Eclipse 是完全用Java语言开发出来的,但是它不是被 Java 语言所独占:Eclipse还支持C/C+、COBOL、PHP等一些现今比较通用的编程语言,这些语言的插件有的已经可以适用有的预计会推出。Eclipse还可以适用一些和开发无关的语言。综合来看Eclipse是一个十分强大的开发工具。WTK 的全称是Sun J2

22、ME Wireless Toolkit Sun公司的无线开发工具包。为了简化J2ME的开发过程,这个工具包就被sun公司开发出来。使用其中的各种工具包就能开发出与 Java Technology for the Wireless Industry (JTWI, JSR 185) 规范相兼容的J2ME 应用程序。该工具箱包含的很全面,有许多常用的开发工具。WTK中必须有MIDP和CLDC的类库,这样才可以用来开发MIDP,使得MIDlet可以顺利的编译和运行,有了WTK能节省很多开发时间,不必花时间去调试类库。不同版本的WTK其中的内容是不一样的,开发时需要看清楚WTK的版本。如果有一个jar包

23、的功能在你使用的这个版本的WTK中没有,可以直接拷贝一份这个jar包到你当前的项目中去。apps目录中包括了许多Demo程序,为我们演示了J2ME的一些技术实例,这些是很好的学习材料。2.3本章小结本章主要介绍了要开发本游戏所需要的环境和要用到的各个工具软件,有些工具需要配置过后才能使用。下一章要介绍开发的过程。第3章 游戏结构和技术本游戏采取逻辑层与展示层相分离的设计结构,使得逻辑和表现的更改互不影响,可以方便以后的维护和开发。实现这种设计最简单的办法就是为每个类型都定义面板,但是这样比较浪费时间,代码的融入程度较高,不建议采用这种办法。在Java的Web开发中有一个MVC模式,较适合使用。

24、把程序的逻辑分成一层在逻辑层内修改你想要的方法,展示层分为一层,其展示内容根据逻辑层传来的信息来决定,通过MVC模式可以迅速的实现画面的转换。精简了代码,也方便模块的划分。根据对游戏功能和需求的分析,本设计在程序中定义了PlaneGameMIDlet、PlaneGameCanvas、SpriteElement、Bullet、MyPlane、Level、Enemy、Boss、Package等九个类组成。类功能图如下图所示:每个移动的对象都需继承这个类SpriteElementPlaneGameMIDletPlaneGameCanvasLevel继承该类主要功能实现类玩家控制类子弹类敌机表示类道具

25、类PackageLevelMyPlaneEnemyBulletBoss图3-1类功能图3.1 PlaneGameMIDlet类PlaneGameMIDlet类继承了MIDlet类,整个程序的开始和结束都是在这个类中。本程序在这个类中使用了单例模式。单例模式的好处是不能创建多个PlaneGameMIDlet类的对象,保证了在同一时间只有一个对象会被实例化。其中的成员方法有:startApp程序在第一次运行的时候会调用这个方法,这个方法就像是游戏的入口,执行方法过后,游戏显示欢迎界面,具体代码如下:protected void startApp() throws MIDletStateChange

26、Exception Display.getDisplay(this).setCurrent(new WelcomeCanvas();其中startApp就像是一个入口,endApp是个结束点。结构如下图所示程序结束点程序入口触发暂停事件destroyAppstartApp执行完毕pauseApp图3-2 PlaneGameMIDlet流程3.2 PlaneGameCanvas类PlaneGameCanvas类是程序的核心类,几乎所有的功能都在其中实现,此类继承了GameCanvas类,实现了游戏的逻辑和展示的功能。实现了Runnable接口,用以使用线程;实现了CommandListener接

27、口,提供对按键的监听。为了完成很多的功能,该类有很多的成员变量:Graphics graphics画图对象,用来绘制图片。int screenHeight,screenWidth用来定义屏幕的宽度和高度。Thread myThread当前画布的线程。long startTime,endTime一轮线程开始的时间和结束的时间int frameSpeed帧速Command pause,back,start,resume分别代表暂停、返回、开始、继续四个按键。boolean RUN=true是否运行,初始值设为true,保证第一次的时候额可以运行。boolean START=false是否开始,初始

28、值设为flase,等玩家按下开始键之后再设置为trueboolean BACK=false是否返回,初始值设为false,保证游戏不会一直返回,当玩家按返回键的时候再设置为true。Terrain terrain自定义的地图类,用来存放地图对象。MyPlane myPlane玩家控制的飞机对象。Vector enemys敌方飞机的数组。Vector eBullets敌方飞机的子弹。Vector myBullets玩家控制飞机的子弹Boss boss最终敌机的对象。boolean ifBoss用来决定最终Boss是否要出现本类中的成员方法有:commandAction(Command c,Dis

29、playable arg1)按键监听方法,当按下不同的键时,在游戏下的按键也会跟着变化。最开始的时候只有“开始”按键,游戏进行后删除“开始”按键,添加上“暂停按钮”,暂停过后删除“暂停”按钮,添加上“继续”和“返回按钮”。processMovement()更新帧的方法,爆炸的效果,子弹的飞行,飞机的移动,都是通过这个更新帧来向玩家显示。processColliding()处理碰撞效果,这个方法处理了游戏中所有的碰撞。方法中的代码如下所示:run()这个方法重写了Runnable中的run方法,根据游戏的设定设计符合要求的run方法。整个PlaneGameCanvas类的结构如下图所示:Plan

30、eGameCanvas构造方法paintrun成员方法commandActionprocessMovementprocessColliding抽象方法endmake图3-3 PlaneGameCanvast结构3.3 SpriteElement类此类继承了Sprite类,这个类并没有直接的实例化,而是作为所有移动类的父类,列如Plane类、Bullet类、package类等等。此类提供了许多公用的方法,减少代码冗余,体现面向对象编程的优势。该类的成员变量有:Sprite sprite精灵对象,用于显示图像。Graphics graphics画图对象,用来绘制图片。Image image对象的图

31、片资源。int screenHeight,screenWidth定义屏幕的长度和宽度。该类的成员方法有:SpriteElement(String imageName)SpriteElement(String imageName,int frameWidth,int frameHeight)有两个构造方法,一个是不带动画的构造函数另一个是带有动画的构造函数。paint()画图的方法,通过调用Sprite对象的paint方法,然后把画图对象带入到此方法的参数中。还有的是成员变量的get、set方法,这里不过多介绍。3.4 Bullet类Bullet类是飞机的子弹类,也是个抽象类对所有子弹共有的方法都在其中得到实现,此类继承了SpriteElement类,可以得到SpriteElement中的方法和属性。其增加了一个新的成员变量:int destorying这代表了每个子弹的扣血量,也可以称做子弹的威力。此类重写了SpriteElement中的两个构造函数,代码如下所示:/带动画的构造函数protected Bullet(String imageName, int frameWidth,int frameHeight,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1