基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx

上传人:b****6 文档编号:8426975 上传时间:2023-05-11 格式:DOCX 页数:36 大小:542.62KB
下载 相关 举报
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第1页
第1页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第2页
第2页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第3页
第3页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第4页
第4页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第5页
第5页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第6页
第6页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第7页
第7页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第8页
第8页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第9页
第9页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第10页
第10页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第11页
第11页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第12页
第12页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第13页
第13页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第14页
第14页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第15页
第15页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第16页
第16页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第17页
第17页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第18页
第18页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第19页
第19页 / 共36页
基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx_第20页
第20页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx

《基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx(36页珍藏版)》请在冰点文库上搜索。

基于J2ME的手机游戏贪吃蛇的开发Word文档下载推荐.docx

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

目录

摘要I

AbstractII

1引言1

1.1研究背景1

1.2手机游戏研究的目的和意义1

1.3手机游戏的国内外现状1

1.4研究重点2

1.5创新之处2

2J2ME技术及开发环境的配置3

2.1J2ME简介3

2.2J2ME中的虚拟机3

2.3J2ME的架构4

2.4MIDlet状态图5

2.5MIDP应用程序6

2.6J2ME开发环境搭建7

2.6.1开发工具安装7

2.6.2贪吃蛇程序开发的模拟环境7

3总体设计8

3.1游戏的基本需求8

3.2游戏界面框架8

3.3游戏总体流程9

3.4游戏程序组织结构10

3.5关键技术11

3.5.1高级用户界面11

3.5.2低级用户界面11

3.5.3内存优化技术12

4 详细设计14

4.1双蛇模式14

4.1.1双蛇模式的概述14

4.1.2双蛇模式的操作流程14

4.1.3双蛇模式代码结构15

4.1.4关键类的设计16

4.2关键代码的实现23

4.2.1双蛇模式游戏地图代码设计23

4.2.2食物的代码设计24

4.2.3蛇的代码设计24

4.2.4双蛇模式主循环26

5程序的运行测试27

结论30

1程序的不足之处30

2总结和展望30

参考文献31

致谢32

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实例。

⑵Form和Item

Form是一种可以包含一个或者多个下面这些从Item类派生出来的组件:

TextField、ChoiceGroup、DataField、Gauge、StringItem、ImageItem。

它可以通过Formform=newForm(

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2