基于J2ME的手机游戏贪吃蛇的开发毕业设计论文.docx
- 文档编号:27519872
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:48
- 大小:549.87KB
基于J2ME的手机游戏贪吃蛇的开发毕业设计论文.docx
《基于J2ME的手机游戏贪吃蛇的开发毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于J2ME的手机游戏贪吃蛇的开发毕业设计论文.docx(48页珍藏版)》请在冰豆网上搜索。
基于J2ME的手机游戏贪吃蛇的开发毕业设计论文
本科毕业设计(论文)
基于J2ME的手机游戏贪吃蛇的开发
毕业论文(设计)原创性声明
本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。
据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。
对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。
作者签名:
日期:
毕业论文(设计)授权使用说明
本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。
有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。
学校可以公布论文(设计)的全部或部分内容。
保密的论文(设计)在解密后适用本规定。
作者签名:
指导教师签名:
日期:
日期:
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
3)其它
摘要
J2ME(Java2MicroEdition)是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。
J2ME虚拟机在手机上的普及为手机游戏的发展提供了最适合的土壤,随后MIDP2.0的发布,特别是其中新增的GameAPI使得手机游戏开发者可以更专注于游戏性的增强而不再是繁琐的动画处理与地图设计,让开发过程变得更加方便迅捷。
所以它成为手机游戏发展的重要里程碑。
本论文着眼于J2ME技术的应用,开发一款趣味性手机游戏——贪吃蛇。
本文首先介绍了手机游戏在国内外的发展现状及发展前景。
之后就基于我们这次的毕业课题,针对我们如何在MyEclipse平台应用J2ME进行手机游戏开发进行详细介绍,具体包括对本游戏程序的结构设计、界面设计、具体功能的实现以及游戏测试等。
关键词:
J2ME;MIDP;手机游戏;贪吃蛇
TheCellphoneGameGreedySnakeBasedOnJ2ME
Abstract
J2ME(Java2MicroEdition)isakindoffastdevelopingtechnologyimplementedonvariousdevicesespeciallymobilecommunicationequipments.WidespreaduseofKVMonthemobilephoneincreasesthespeedofmobilegamedevelopment.WiththereleaseofMIDP2.0,especiallythenewlyaddedGameAPI,gamedevelopercanconcentrateontheenhanceofgameperformance,freeingthemselvesofanimationmakingandgamemapdesign.Gamedevelopmentbecomesrapidandmoreandmoreconvenient.So,MIDP2.0becomesthemilestoneofmobilegamedevelopment.
ThisdissertationfocusesonimplementationofJ2MEtechnologyandhasdevelopedaninterestinggamesuiterunningonmobilephones—GreedySnake.Firstly,Thisdissertationintroducesthedevelopingstatusquoofthehandsetgameindomesticandforeign,andalsotheforegroundofthehandsetgame.Then,itwillmakeanintroductionabouthowwedevelopthehandsetgamesusingJ2MEinMyEclipseplatformindetails,includingthedesigningofthisgameprogram’sstructure,thedesigningoftheinterface,thedetailedimplementationofthefunction,gametesting,andsoon.
Keywords:
J2ME;MIDP;HandsetGame;GreedySnake
1引言
本章阐述了用MyEclipse开发基于J2ME手机游戏贪吃蛇的课题背景、课题研究的目的和意义、手机游戏的国内外现状、研究重点以及本贪吃蛇游戏的创新之处,同时也指出了当前手机游戏开发和手机游戏市场存在的问题以及解决问题的方向。
1.1研究背景
JAVA自从20世纪90年代早期诞生以来,以其强大的功能迅速为广大程序员们所接受。
从2001年开始,日本的国内的移动电话开始搭载Java。
使用本来就是一种程序语言的Java之后,就可以在移动电话上完成以往静态的HTML内容所无法达成的计算处理、数据存储、与服务器的通信等等。
如果能利用Java上其他丰富功能,那么就可以实现更多的功能。
随着手机游戏的发展,国内外各大开发商纷纷运用Java进行手机游戏开发。
J2ME作为一种基于Java的便携设备开发平台,在各大手机开发公司得到了广泛应用。
1.2手机游戏研究的目的和意义
当前,无线通讯已经成为发展最快、最前沿的通讯领域之一。
手机及其它无线通讯设备越来越多地走进广大人们的工作和生活。
与此同时手机游戏自然而然成了现今社会的热点问题。
手机游戏市场已经成为资本市场最抢眼的蛋糕,各研发商和运营商的秘密武器。
面对潜力巨大的手机游戏市场,各游戏开发商、运营商、服务商以及手机终端厂商等产业链各环节的参与者都开始了各自的应战准备,以便抢占先机。
诺基亚、索爱、摩托罗拉等各大手机厂商开始不断提升手机在游戏方面的性能,同时还在手机操作系统方面采用开放式的平台,便于用户享受不同的手机游戏业务。
而国内游戏厂商,如盛大、网易等,已跻身手机游戏开发厂商的行列。
新浪、搜狐等著名的门户网站,也纷纷涉足手机游戏领域,相继开辟了专门的手机游戏频道和栏目,其它一些游戏网站也都全面加快了手机游戏开发的步伐。
2004年盛大成功收购中国领先的移动设备游戏开发商——北京数位红软件应用技术公司,更是将游戏界的目光牵引到极有前景的无线游戏市场。
1.3手机游戏的国内外现状
1998年诺基亚公司年发布了全球第一款内置游戏的手机——“变色龙6110”,内置贪食蛇、记忆力、逻辑猜图三款游戏,受到了全世界的欢迎,其他厂商纷纷跟进。
那时候的手机游戏都是在手机出厂时固化的,而且要针对不同机型量身订做,因此只是手机厂商吸引顾客一种手段。
受当时硬件平台的限制,手机游戏大多简单朴素,可玩性不高,而J2ME的普及为手机游戏的发展提供了最适合的土壤。
因为JVM的平台无关性使得标准的J2ME游戏几乎可以在所有内置了JVM的手机上运行,一方面提高了游戏的传播性,另一方面提高了开发者的积极性。
于是逐渐开始有第三方公司专门从事J2ME游戏的开发,形成了手机游戏产业化。
随着硬件水平的发展,手机游戏也一改往日的朴素形象,开始加入了更多的媒体元素,由最早的黑白两色、单音发展到了彩色动画与和弦音效甚至3D加立体声,手机厂商甚至推出了专门的游戏手机,如诺基亚的N.Gage[10]。
然而更多的情况下,手机只是PC与游戏机的一种替代。
条件满足的话,人们肯定更愿意选择速度与交互性都更加出色的后者。
与之相比,手机游戏最大的优势便是其易携性与网络支持性。
因为它的易携,使得它可以满足人们随时随地玩游戏的需求,是无聊时打发时间的最好选择。
至于网络支持性,在目前网络带宽有限的情况下优势还不明显,预计在将来成为手机网游发展的最大助力。
基于以上差别,目前最有可能成功的手机游戏就是那些临时小游戏,它可为广泛的玩家在所有的社交场合提供娱乐。
1.4研究重点
以开发“贪吃蛇”游戏为例,熟悉手机游戏的开发过程,并重点研究以下几个问题:
贪吃蛇的绘制、贪吃蛇的移动及更新、贪吃蛇如何根据用户的按键而转向、贪吃蛇吃到食物应该如何处理、贪吃蛇的碰撞检测、游戏速度的控制以及如何实现双蛇模式。
1.5创新之处
这款贪吃蛇游戏继承了以往传统手机游戏的开发,但它整合了挑战模式、关卡模式、双蛇模式,可玩性大大增强。
另外,界面的合理化,让玩家操作起来更轻松,更方便。
双蛇模式中随机生成的小石块障碍物,增加了游戏的难度,使得游戏更具趣味性。
2J2ME技术及开发环境的配置
2.1J2ME简介
要彻底了解J2ME(Java2MicroEdition),本文将先对J2ME在整个java技术之中的定位做个了解。
使用java撰写程序的时候,需要使用Sun所提供的java标准类库。
之所以叫做类库,是因为各式各样的方法被有系统地放在类之中,而这些类又被分门别类地归属在不同的包(package)之下,相较起来,传统标准程序库(例如Win32API)的组成结构就显得有点松散。
这些各式各样的包,组成了核心类库(CoerClass,即java.*)。
在核心类库之外还有所谓的扩充类库(ExtendedClass,即javax.*),程序员可以自由选用各种程序库开发完成自己的工作[4]。
Java语言还支持8种基本类型(primitivetype,即boolean,char,byte,short,int,long,float,double),可供程序员撰写程序时使用。
根据所支持的程度,SunMicroSystems区分出三种不同的java平台,如图2.1所示:
图2.1JAVA平台的划分
所有平台的划分均以J2SE为基准点,J2SE支持所有的核心类库以及8种基本类型。
J2SE外面的Java平台(J2EE)也支持完整的核心类库及8种基本类型。
反之,位于同心圆内部的Java平台(J2ME),所支持的就是核心类库的子集合,而且越往里面所支持的核心类库子集合就越小,所支持的java基本类型就越少。
2.2J2ME中的虚拟机
众所周知,Java2共有3个针对不同应用方向的版本:
标准版J2SE、企业版J2EE和微型版J2ME。
J2SE和J2EE中的Java虚拟机简称JVM。
在J2ME中有两类Java虚拟机,CVM(CVirtualMachine,C虚拟机)和KVM(KVirtualMachine,K虚拟机)。
KVM和CVM均被看成JVM的子集,都是JVM的功能缩减版。
但在手机游戏开发中,程序是运行在KVM之上。
2.3J2ME的架构
一个完整的J2ME架构,由上至下包括4个层次的内容:
简表(Profile)、配置(Configuration)、虚拟机(VirtualMachine)和操作系统(OperatingSystem),其层次结构如图2.2所示[9]:
图2.2J2MEMIDlet架构
J2ME使用配置和简表定制Java运行时环境(JRE)。
作为一个完整的JRE,J2ME由配置和简表组成,配置决定了使用的JVM,而简表通过添加特定于域的类来定义应用程序。
J2ME的JRE最底层包括虚拟机(VM)和类库两部分,这一层与设备层(硬件及操作系统)关系紧密,由SUN提供参考规范和源代码,设备厂商根据设备特征进行相应地移植。
在虚拟机之上的是配置层。
具体到J2MEMIDlet架构,如图2.3,配置将基本运行时环境定义为一组核心类和一个运行在特定类型设备上的特定JVM。
当前J2ME提供两个配置:
CDC配置和CLDC配置[3]。
图2.3J2MEMIDlet架构
配置层之上是简表层(Profile),再之上则是应用层(Application)。
简表定义应用程序向J2ME配置中添加特定域的类,定义设备的某种作用。
简表层扩展了配置层功能,为上层应用提供API。
如果说配置层面向设备,简表层则面向应用。
可以根据需要在CDC或CLDC基础上提供多种简表,一个配置层之上也可以有多个简表。
当前CDC之上有基础简表(FoundationProfile)和基于FP的PersonalProfile和RMIProfile。
CLDC之上则主要提供移动信息设备简表(MIDP),即用于手机、PDA等移动终端的设备简表,提供API以支持无线应用开发[3]。
2.4MIDlet状态图
MIDletsuite是MIDP应用程序的最小单位,JAM负责将手机内的MIDletsuite以图形化的方式呈现,让用户能够选取欲执行的MIDletsuite,一旦选取了某个MIDletsuite,操作系统自动就会激活KVM去执行里面的MIDlet主控制类。
每个MIDlet都必须继承javax.microedition.midlet.MIDlet这个抽象类。
在MIDP规格中定义了MIDlet的生命周期,以及可以存在的三种状态,包括Paused、Active以及Destroyed。
在启动一个MIDlet时,应用管理软件会首先创建一个MIDlet实例并使它处于Paused状态,当startApp()方法被调用时,MIDlet进入Active状态。
在Active状态调用destroyApp()或pauseApp()方法可以使MIDlet进入Destroyed或Paused状态。
这三种状态的转换关系如图2.4所示:
图2.4MIDlet状态转换图
2.5MIDP应用程序
所谓MIDP应用程序,指的就是遵循MobileInformationDeviceProfile规范所开发的应用程序。
一个完整的MIDP应用程序由两个文件构成:
应用程序主体(JAR文件)与应用程序描述文件(JAD文件)。
当我们完成一个MIDP应用程序之后,必须让程序能够在用户的设备上执行,这个行为称作部署(Deploy)。
MIDP应用程序的部署方式可以先区分为OTA与非OTA两种,OTA是OverTheAir的缩写,意思是说经由无线通信网络将MIDP应用程序下载到设备上。
非OTA的方法比较多样,目前要将MIDP应用程序下载到用户的手机上有下列几种方法:
1.利用手机所提供的传输线,配合随机附赠的下载软件,让我们开发的MIDP应用程序能够从PC或其他设备下载到手机上。
2.红外线(IrDA)。
3.多媒体信息服务(MMS)。
4.蓝牙(Bluetooth)。
5.Email附件。
目前这些方法会因不同的手机厂商及手机款式而有所不同[4]。
在J2ME中有些重要的名词要先解释一下:
1.MIDlet
一个可以执行的应用程序基本单位。
除了继承javax.microedition.rnidlet.MIDlet之外,还包括让此类可以顺利执行的所有其他类和资源文件。
2.MIDletSuite
许多MIDlet所构成的集合,一般我们又叫做MIDlet应用程序套件。
MIDletSuite和MIDlet的关系,就很像Office与Word,Excel,PowerPoint,Access的关系。
一般又称作MIDP应用程序(MIDPApplication),我们将同时使用MIDP应用程序和MIDletSuite两个名词,它们代表同一种东西。
一个MIDP应用程序中可以存在许多MIDlet,但一般来说,MIDletSuite之中常常只有一个MIDlet[10]。
应用程序在部署时(不管是OTA或是非OTA)都以MIDletSuite为单位,一般都需要.jar和.jad两个文件来安装。
1.JAR文件(JARFile,jar文件)
实际上是包裹住MDIletSuite的文件,属于ZIP压缩格式。
2.描述文件(DescriptorFile,jad文件)
用来描述MIDletSuite基本信息的文本文件,包括MIDletSuite所包含之MIDlet相关信息(类名称、图标、程序名),或是MIDletSuite的整体信息(文件大小、安全权限、证书等)这是一个外部文件(不存在JAR文件内部,独立存在的文件)。
3.应用程序管理器(JavaApplicationManager)
负责将MIDletSuite安装到机器上执行以及管理MIDlet生命周期的机制(或软件)的总称。
应用程序管理器会根据用户的需求来安装或移除MIDletSuite,也可以根据用户的需求启动、停止MIDlet的运作。
2.6J2ME开发环境搭建
2.6.1开发工具安装
⑴安装JDK:
在使用J2ME进行移动开发之前必须首先搭建好所需的开发环境。
J2ME是构建在J2SE基础上的,也就是说,即便我们将要进行的是J2ME开发,在此也必须首先安装J2SE,然后在此基础上安装J2ME的核心类别函数库和额外的扩充类别函数库。
JDK提供了Java代码编译器和一个用于创建Java档案文件(JavaArchive,简称JAR)的工具。
JDK版本较多,有1.3、1.4.2、1.5.0等多个版本,每一个版本又根据使用的操作系统不同细分为Windows、Linux、Symbian等多个子版本,这里我们用的是Windows操作系统下的JDK1.5.0_15版本。
⑵安装通用J2MESDK:
为了能够使用J2ME开发手机应用程序,还必须在此基础之上安装J2MESDK。
常用的有J2MEWirelessToolkit(J2MEWTK),它是Sun公司发表的一款官方版通用J2MEMIDlet开发工具,提供了运行J2ME应用程序所需要的库及模拟器等,通过它可以进行程序的编译、校验、运行。
在安装J2MEWirelessToolkit之前,一定要确保当前操作系统已经正确安装有Java2SDK1.3以上的版本。
这里我们选用SunWirelessToolkit2.5版本。
⑶安装J2MEIDE开发环境:
常用的J2MEIDE开发环境有JBuilder、Eclipse、JDeveloper等。
由于Eclipse具有强大的Java开发环境,这使它获得了人们的一致好评。
EclipseME并不为开发者提供无线设备模拟器,而将各手机厂商的实用模拟器紧密连接到Eclipse开发环境中,为开发者提供一种无缝集成开发环境。
本文选用了MyEclipse(在Eclipse基础上装了MyEclipse插件构成MyEclipse开发环境)作为IDE开发环境。
2.6.2贪吃蛇程序开发的模拟环境
系统环境:
WindowsVISTAHomeSP1
平台支持:
JDK1.5.0_15
开发工具:
MyEclispe5.51GASUNWTK2.5
手机模拟器:
SUNWTK2.5下的MediaControlSkin
插件工具:
eclipseme.feature_1.7.5_site
3总体设计
3.1游戏的基本需求
通过构思与设计,得出此游戏的基本需求如下:
1.游戏界面尽量美观。
2.游戏区域必须适应手机屏幕大小。
3.提供游戏速度选择、玩家姓名输入。
4.要求实现挑战、关卡以及双蛇三种游戏模式。
5.要求在游戏界面中生成障碍物。
6.挑战模式下能保存玩家分数。
7.能够查看挑战模式下玩家的分数英雄榜。
8.支持游戏的暂停、开始。
3.2游戏界面框架
本游戏界面组成框架,如图3.1所示:
图3.1整个游戏界面框架图
1.闪屏界面:
游戏载入界面,显示游戏名称和制作人员。
2.英雄榜界面:
显示挑战模式下玩家的历史最高得分。
3.速度选择界面:
玩家姓名的输入和速度的选择。
4.模式选择界面:
游戏的模式选择,包括挑战模式、关卡模式和双蛇模式。
5.主菜单界面:
进行游戏的基本操作,包括开始游戏、模式选择、英雄榜、游戏帮助和退出游戏。
6.游戏帮助界面:
对游戏规则的说明。
7.挑战模式界面:
进行挑战模式的游戏界面。
8.关卡模式界面:
进行关卡模式的游戏界面。
9.双蛇模式界面:
进行双蛇模式的游戏界面。
3.3游戏总体流程
玩家在启动游戏后,即进入游戏的闪屏画面。
闪屏画面结束后,就进入了游戏主菜单界面。
玩家可以通过方向键选择游戏模式、查看高分榜、查看游戏帮助说明、开始游戏及退出游戏操作。
选择相应游戏模式后,按开始游戏就可进行游戏。
不过刚开始,游戏处于暂停状态,玩家可以通过按[GO]按钮,开始游戏;通过按下[Pause]按钮,暂停游戏。
任何时候,玩家都可以按[Exit]按钮,结束游戏。
此时,游戏会返回到游戏主菜单界面,从而玩家可以进行其他操作。
流程图如图3.2所示:
图3.2整个游戏流程图
3.4游戏程序组织结构
双蛇模式主要类和类的功能介绍如下:
⑴SnakeMIDlet类:
每个MIDlet程序都得继承MIDlet类,该类也不例外。
它主要负责维持程序的运行状态,其他工作几乎不涉及。
⑵UserChooseForm类:
该类用来为玩家提供姓名的输入和游戏速度的选择。
⑶DSnakePart类:
该类是蛇的活动段的信息定义类,它是蛇的基本组成部分。
⑷DSnake类:
该类定义了蛇的属性和方法,包括蛇的位置、长度、方向等信息、蛇的绘制、蛇的移动与更新以及蛇的转向处理。
⑸DFood类:
该类负责双蛇模式下食物的产生。
⑹RandomMap类:
该类主要用来产生双蛇模式游戏界面中的随机小石块障碍物。
⑺DoubleSnake类:
该类主要负责双蛇模式游戏的主绘制线程,是玩家控制双蛇的运动的主控类。
双蛇模式各类之间的关系,如图3.3所示:
图3.3各类之间的关系UML图
3.5关键技术
3.5.1高级用户界面
高级UI提供了MID的一个抽象接口,通过它可以获得大量的功能。
使用高级API首先创建组件把它们加入到屏幕,然后与它们相交互。
下面就本程序用到的技术知识进行描述:
⑴列表(List)
List是一个可以给用户显示一组备选项的组件。
这个类的实现通过Listlist=newList(“titile”,listType)即可创建一个List实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 J2ME 手机 游戏 贪吃 开发 毕业设计 论文