精品国内外手机游戏的研究现状.docx
- 文档编号:18083217
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:62
- 大小:101.90KB
精品国内外手机游戏的研究现状.docx
《精品国内外手机游戏的研究现状.docx》由会员分享,可在线阅读,更多相关《精品国内外手机游戏的研究现状.docx(62页珍藏版)》请在冰点文库上搜索。
精品国内外手机游戏的研究现状
精品】:
国内外手机游戏的研究现状
武汉科技大学中南分校毕业设计(论文)目录
第一章引言1
1.1国内外手机游戏的研究现
状1
1.2手机游戏的技术分
类1
1.3研究意
义
2第二章基于J2ME的手机游戏开发平台概述4
2.1什么是
J2ME
4
2.2J2ME平台体系结
构4
2.3
KVM
5
2.4
CLDC
6
2.5移动信息设备描述
(MIDP)8
2.6MIDP应用程
序
8
2.7MIDPUI组
件
9第三章手机游戏开发的相关知识及工具12
3.1手机游戏的画
面
...12
3.2手机游戏中的按
键
13
3.3线程使
用
14
3.4手机硬件平台特
点14
3.5
第四
手机游戏开发工具软
件15
章手机游戏一“逃亡者”的设计与实现17
4.1游戏描
述
17
4.2可行性研
究
17
4.3游戏设
计
17
4.4详细编码设
计
19
4.5程序打包、下载安装与运
行19
4.6最后效果
图
20第五章结束语
21参考文献22致
谢23附
录24
第1页共42页
杨永:
基于J2ME的手机游戏设计第一章引言
1.1国内外手机游戏的研究现状
近年来,因特网在国内迅速普及,导致了网络游戏的高速发展。
同样手机的普及,导致了手机游戏市场呈现爆炸式的发展。
尤其是国内外巨大的手机拥有量,更是让商家看到了商机,手机游戏市场利润将会十分丰厚。
面对潜力如此巨大的手机游戏市场,各游戏开发商、运营商、服务商以及手机终端厂商等都纷纷开始了各自的应战准备,以便抢占商机。
诺基亚、索爱、摩托罗拉等各大手机厂商开始不断的提升手机在游戏方面的性能,同时还在手机操作系统方面采用开放式的平台,方便用户享受不同的
[1]手机游戏业务。
而国内游戏开发商,如盛大、网易等公司,纷纷跻身手机游戏开发商行列。
新浪、搜狐等著名的门户网站,也纷纷涉足手机游戏领域,相继开辟了各自的手机游戏频道和栏目,其他一些游戏网站也都全面加快了手机游戏开发的步伐。
目前SUN公司的J2MECLDC/MIDP环境和高通公司的BREW(BinaryRuntimeEnvironmentforWireless)客户端程序是国内外游戏开发的两大主要平台。
中国电信业巨头中国移动建立了无线Java增值服务体系,推出了基于SUN公司的J2ME环境的“百宝箱”业务,包括游戏类、商务类、生活类等丰富的数据服务。
中国移动用户只要使用支持Java的手机,通过GPRS的无线上网方式,访问移动梦网门户的“百宝箱”服务菜单,就能方便地下载各种由Java语言编写的应用程序。
而中国联通与高通公司合作,采用高通公司的BREW平台技术,推出了“神奇宝典”业务,中国联通用户可以从联通公司的应用下载服务器上以无线方式下载应用程序。
1.2手机游戏的技术分类手机游戏按实现的技术分,可分为嵌入式游戏、浏览器游戏、基于J2ME和其
它的解释语言的游戏、基于C++应用程序和其它编译语言的游戏等。
1.嵌入式游戏
嵌入式游戏在出厂时就固化在手机的芯片中,像Nokia的“贪吃蛇”就是一个经典的例子。
这些游戏是为手机量身定做,能够充分发挥特定手机的强大性能,从而达到其他类型的游戏所无法达到的效果,而且嵌入式游戏在运行过程中不会让用户产生费用。
但是这些游戏是依据手机生产厂商的平台进行开发
[1]J2ME开发网?
J2ME中文教程?
PDF电子文档,2005-9-5
第1页共42页
武汉科技大学中南分校毕业设计(论文)的,出厂时设置了几款游戏,玩家就只能在这几款游戏当中进行选择,而不能根据用户自己的喜好对游戏进行升级、删除等操作,所以嵌入式游戏的缺点也是明显的,无法给玩家带来新鲜感,玩家容易对固定的几款游戏产生厌倦。
2.浏览器游戏
WAP是一种用手机上网的网络服务。
进行WAP游戏时,通过手机自带的WAP浏览器来浏览手机网站上的页面,并通过页面中描述的内容来进行游戏。
形式上类似于网上常见的一些心理测验之类的交互手段。
WAP游戏没有图片和容量的限制,但这类游戏大多采用文字交互方式,这样游戏性就不强,缺乏直观感觉。
而且在收费上,WAP游戏费用比较高,因为在游戏的过程中,您不仅需要向服务商交纳一定的费用,而且同时要向中国移动或中国联通交纳一定的流量费用。
.基于C++应用程序和其它编译语言的游戏3
使用C++应用程序和其它编译语言开发游戏也是一种较好的开发方式。
编译语言程序能提供更好的控制用户界面,而且编写的应用程序相比用脚本语言编写的程序,效率更高、使用的内存更少,并且执行得更快。
但由于这些编译语言往往不具有跨平台性,而且由于编译语言的特点,往往需要较长的开发周期。
4.基于J2ME和其它解释语言的游戏
Java2MicroEdition(J2ME)是一种针对移动电话和PDA等小型设备的Java语言。
采用J2ME极大的提高了手机支持游戏的能力。
它有比WAP游戏更易控制的界面,J2ME游戏摆脱了纯文字交互的方式,它允许使用图形动画,并且可以通过无线网络连接到远程服务器。
而且Java是面向对象程序设计的语言,它最大的特点是一次编写、到处运行,即平台无关性。
现在支持Java的手机比较普及,它也已经成为目前比较好的移动游戏开发环境。
1.3研究意义
对手机功能的扩充。
手机游戏成了电信增值业务中一项主要的应用,在公交车等公共场合不时会看到拿着手机玩游戏的人。
相比较早开发的“贪吃蛇”、“俄罗斯方块”等手机游戏,如今的手机游戏,无论是从视觉效果、听觉效果还是游戏的可玩性来说,都要精彩的多。
在全球,移动电话数量巨大,除美国之外,其他各个发达国家拥有手机的人数比拥有计算机的人数还多。
在我国,手机拥有量甚至超过了美国的人口数量,而且每个月手机数量还正以惊人的速度递增着。
手机市场的高速增加带动了手机游戏市场的急速膨胀,基于JAVA、BREW等技术平台
第2页共42页
杨永:
基于J2ME的手机游戏设计
[2]的手机游戏市场规模纷纷呈现几何增长态势。
[2]林邦杰?
Java程序设计入门教程?
中国青年出版社,2001-9-15第3页共
42页
武汉科技大学中南分校毕业设计(论文)
第二章基于J2ME的手机游戏开发平台概述2.1什么是J2ME
J2ME是SUN公司针对嵌入式、消费类电子产品推出的开发平台,与J2SE和
J2EE共同组成Java技术的三个重要的分支。
J2ME实际上是一系列规范的集合,由JCP组织制定相关的JavaSpecificationRequest(JSR)并发布,各个厂商会按照规范在自己的产品上进行实现,但是必须要通过TCK测试,这样确保
[3]兼容性。
2.2J2ME平台体系结构
J2ME平台是由配置(Configuration)和简表(Profile)构成的。
配置是提供给最大范围设备使用的最小类库集合,在配置中同时包含Java虚拟机。
简表是针对一系列设备提供的开发包集合。
在J2ME中还有一个重要的概念是可选包(Optional-Package),它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能J2ME中制定了JSR82(BluetoothAPI)提供了对蓝牙的支持。
目前,J2ME中有两个最主要的配置,分别是ConnectedLimitedDevices
Configuration(CLDC)和ConnectedDevicesConfiguration(CDC)。
他们是根
[4]据设备的硬件性能进行区分的。
CDC的硬件参数:
(1)2M以上内存。
(2)具有网络连接能力,通常为无线网络。
(3)需要实现java虚拟机规范的全部功能。
(4)32位或者64位的处理器。
CLDC的硬件参数:
(1)512KB以下内存
(2)有限能源供应(通常使用电池)。
(3)有限或非持续网络连接。
(4)简单的用户界面。
(5)16位或者32位的处理器。
[3][4]黄聪明?
JAVA移动通信程序设计J2MEMIDP?
清华大学出版社
第4页共42页
杨永:
基于J2ME的手机游戏设计
从上述的标准中我们不难看出CLDC主要针对那些资源非常受限的设备比如手机、PDA、双工寻呼机等。
而CDC主要面对那些家电产品,比如机顶盒、汽车导航系统等。
简表是以配置为基础的,例如MobileInformationDevicesProfile
(MIDP)就是CLDC上层的重要简表。
与配置的纵向特性不同的是,简表是横向的。
-1是J2ME体系结构的框图:
下图2
TheJ2MEEnvironment
J2MEAppliacationLayer
MIDLet
MIDLetClassLayer
MIDLetApplicationManager
图2-1J2ME体系结构框图
(1)主机操作系统层(HostOperatingSystemLayer):
这一层为特定硬件设备的操作系统层。
(2)Java虚拟机层(JavaVirtualMachineLayer):
这一层是Java虚拟机的一
个实现,它是为特定为特定设备的主机操作系统定制的,支持一个特定的J2ME配
置。
(3)配置层(ConfigurationLayer):
配置层定义Java虚拟机的功能和特定类别设备上可用的Java类库的最小集。
从某种程度上说,一个配置定义了Java平台的功能部件和库的共同性,开发者可以假设这些功能部件和库在属于某一特定类别的所有设备上都是可用的。
这一层对用户是透明的,但它对描述的实现者非常重要。
(4)描述层(ProfileLaver):
描述层定义了特定类别设备上可用的应用程序编程设备的主机操作系统定制的,支持一个特定的J2ME配置。
在手机上,KVM,CLDC,MIDP分别实现了J2ME体系结构中的Java虚拟机层、配置层和描述层。
2.3KVM
CLDC和MIDP都是运行在Sun公司的KVM上。
KVM是一个专门为小型、资源受限设备所设计的紧凑的、便携的Java虚拟机。
Java虚拟机是Java程序语言的核心,只要Java程序在执行,Java虚拟机也必定在执行。
Java虚拟机是实际执行Java程序的引擎,也是Java语言具有这么多优良特色的关键所在。
当你执行Java程序时,程序内的指令其实并不是由硬件直接执行,而是由一个特别的软第5页共42页
武汉科技大学中南分校毕业设计(论文)件一一读取这些指令来执行的。
简单地说,Java程序不是被底层的CPU直接执行,而是被“虚拟CPU”执行的,所谓的虚拟CPU其实就是计算机上执行的一个特别软件。
虚拟机的优点甚多,比如移植方便,只需要移植虚拟机和相关的支持程序库到新的硬件架构上,所有上层的应用程序都不需要更动就完成移植了。
虚拟机的另一个好处是它在计算机软硬件间加入一抽象层来分离和保护,
[5]可以防止恶作剧的程序暗中搞鬼。
2.4CLDC
2000年5月,JavaCommunityProcess(JCP)公布了CLDC1.0规范(即JSR30)。
作为第一个面对小型设备的Java应用开发规范,CLDC是由包括Nokia,Motorola和Siemens在内的18家全球知名公司共同协商完成的。
CLDC是J2ME核心配置中的一个,可以支持一个或多个profile。
其目标主要面向小型的、网络连
接速度慢、能源有限(主要是电池供电)且资源有限的设备,如手机、机顶盒、PDA
CLDC的核心是虚拟机和核心类库。
虚拟机运行在目标操作系统之上,对下层的硬件提供必要的兼容和支持;核心类库提供操作系统所需的最小的软件需求。
1核心类
2库虚拟机
可选包
Profile
配置
操作系统
图2-2CLDC标准构架
2.4.1CLDC的目标
(1)为小型的、资源受限的连接设备定义一个Java平台标准。
(2)允许向上述设备动态的传递Java应用和内容。
(3)使Java开发人员能够轻松的在这些设备上进行应用开发。
2.4.2CLDC的整体需求
(1)能运行在绝大多数的小型的、资源受限的连接设备上。
(2)用CLDC为上述设备开发的应用尽可能的不使用设备的本地系统软件。
[5]卢军?
J2ME应用程序开发手机、PDA程序开发捷径?
中国铁道出版社
第6页共42页
杨永:
基于J2ME的手机游戏设计
(3)定义能应用在绝大多数上述设备上的最小子集的规范。
(4)保证在不同类型上述设备之间代码级的可移植性和互操作性。
2.4.3
CLDC的硬件需求
由于CLDC要面向尽可能多的设备,而这些设备所使用的硬件又各不相同。
因此CLDC规范中并没有指明需要某种硬件支持,只是对设备的最小内存进行了限制。
CLDC规范中要求硬件必须达到以下要求:
(1)至少160KB的固定内存以供虚拟机和CLDC核心类库使用。
(2)至少32KB的动态内存以供虚拟机运行时使用(堆栈等)。
这里所说的固定内存是指拥有写保护,不会因关机而抹去的ROM。
对于具体的设备的具体实现,这些需求也可能有变化。
这里所规定的160KB是CLDC规范中的要求,实际也可以是128KB左右。
2.4.4CLDC的软件需求
和硬件类似,CLDC上运行的软件也是多种多样的。
例如,有些设备支持多进程操作系统或者支持文件系统;而有些功能极其有限的设备并不需要文件系统。
对于这些不确定性,CLDC只定义了软件所必须的最小集合。
CLDC规范中要求操作系统不需要支持多进程或是分址空间。
2.4.5CLDC的功能范围
在CLDC1.0版本中定义了以下功能:
(1)Java核心语言与Java虚拟机的特性
(2)核心Java类库
(3)输入/输出
(4)对网络的支持
(5)对安全性的支持
(6)对国际化的支持
2.4.6CLDC特征
(1)安全
(2)遵守Java语言规范
(3)遵守Java虚拟机规范
(4)要求类文件验证
J2EE和J2SE为桌面计算机和服务器的企业级应用和开发提供了非常丰富的库函数。
不幸的是这些库需要几十兆的内存来运行,因此并不适合于资源受限的小型设备。
所以CLDC针对小型受限设备重新制定了一个类库。
为了保证应用程序的兼容性和可移植性,包括进CLDC的大多数类库都是J2SE中规定的子集,其它一些是由CLDC规定的专用于移动设备的类。
包括:
从J2SE中继承的第7页共42页
武汉科技大学中南分校毕业设计(论文)
[6]类、国际化支持类、系统属性类、CLDC专用类四个方面。
2.5移动信息设备描述(MIDP)
J2ME提供了描述的概念,使得可以为特定的设备家族定义相同的Java平台。
描述可以满足两种明显不同的可移植性需求:
(1)描述为在一个特定的设备家族实现应用提供了完整的工具,比如传呼机、机顶盒、移动电话、洗衣机或智能玩具。
(2)可以创建一种描述来支持重要的、一致的一组应用,这些应用可能会在几各不同的设备上运行。
简单地说,描述就是应用和市场的设备家族之间的协议。
处于同一个设备家族中的所有设备都必须实现其描述所定义的特征,并且要求应用只使用这个特定描述所提供的功能。
在实现层次上,描述被简单地定义为应用在特定配置上的JavaAPI和类库的集合,同时为市场中特定的设备家族提供了附加的面向
[7]特定领域的功能。
现在,己经有了五个规范化了的描述,如表2-1
表2-1五个规范化描述
描述名称下层配置
Mobileinformationdeviceprofile(MIDP)CLDC
PersonaldigitalassistantprofileCLDC
FoundationprofileCDC
PersonalprofileCDC
RMIprofileCDC
2.6MIDP应用程序
CLDC和MIDP组合起来为创建移动电话应用程序提供了完整的环境。
MIDP应用程序或者称为MIDlet.其模型如图2-3所示
[6]JSR-000139ConnectedLimitedDeviceConfiguration1.1[7]
第8页共42页
杨永:
基于J2ME的手机游戏设计
TheJ2MEEnvironment
J2MEAppliacationLayer
MIDLet
MIDLetClassLayer
MIDLetApplicationManager
图2-3MIDlet应用框
MIDlet有三个状态,分别是pause、active和destroyed。
在启动一个MIDlet的时候,应用管理软件会首先创建一个MIDlet实例并使得他处于pause状态,
active状态,也就是所说的运行状当startApp()方法被调用的时候MIDlet
进入
方法可以使得MIDlet进入destroyed或者pause状态。
值得一提的是destroyApp(boolean
unconditional)方法,事实上,当destroyApp()方法被调用的时候,AMS通知MIDlet进入destroyed状态。
在destroyed状态的MIDlet必须释放了所有的资源,并且保存了数据。
如果unconditional为false的时候,MIDlet可以在接到通知后抛出MIDletStateChangeException而保持在当前状态,如果设置为true的话,则必须立即进入destroyed状态。
下图2-4说明了MIDlet状态改变情况:
Start
startApp
ActivePaused
pauseApp
destroyAppdestroyApp
Destroyed
图2-4MIDlet状态图
2.7MIDPUI组件
In组件与低级绘制相比,用在游戏开发上的机会较少,但还是会到。
所谓UI组件,是指继承了javax.microedition.lcdui.Screen类的javax.microedition.ledui.Alert,javax.microedition.lcdui.Form,javax.microedition.lcdui.TextBox,j
avammicroedition.lcdui.List等。
下图为我们展示了整个LCDUI包的体系:
第9页共42页
武汉科技大学中南分校毕业设计(论文)
DisplayCommandLister
TickerDisplayableCommand
CanvasScreen
Image
Graphics
Font
图2-5LCDUI包的体系
Screen类属于高级图形用户界面组件,Canvas是低级图形用户界面组件,在同一时刻,只能有唯一一个Screen或者Canvas类的子类显示在屏幕上,我们可以调用Display的setCurrent()的方法来将前一个画面替换掉,我们必须自行将前一个画面的状态保留起来,并自己控制整个程序画面的切换。
同时我们可以运用javax.microedition.lcdui.Command类来给我们的提供菜单项目的功能,分别是:
Command.BACKComm、anCdommand.CANCE、LCommand.EXI、TCommand.HEL、PCommand.ITEM、Command.O、KCommand.SCREE和NCommand.STO,P我们在Displayable对象中定义了addCommand()和removeCommand()两个方法,这就意味着我们可以在高级UI和低级UI中同时使用Command类,同时我们通过注册Command事件来达到事件处理的目的,即Command必须与CommandListener接口配合使用才能反映用户的动作。
与高级UI相比,低级UI就自由很多,任何时候我们可以调用repaint()产生重绘事件,调用完了repaint()会立刻返回,调用paint()回调函数则是由另一个专门的线程来完成。
底层事件大致可分为三类:
PressEvents(按键事件),ActionKeys(动作按键,PointerEvents(触控事件)。
我们将围绕这三个主题来介绍一下这种事件的用法
键事件的几个核心方法为:
keyPressed(),keyReleased(),keyRepeated(),当按键按下时会触keyPressed(),当松开按键时,会触发keyReleased(),当长时间按住按键时会触keyRepeated(),但是RepeatEvents不是JTWI要求强制支持的,所以使用之前要进行测试,看设备是否支持。
在Canvas里面我们每按下一个按键都会触发keyPressed()函数,并传入相应位置的整数值,我们在MIDP规范中可以很容易的发现,KEY_NUM—0KEY—NUM9十个常数分别代表键盘上的0-9还有两个功能键,KEY_STA,RKEY_POUN,D如果我们传入的值小于0,代表我们传入了不合法的keycode,某些机器上还支持连续按键响应,但这并不是JTWI规定要支持的,所以我们在进行实际开发之前一定要用我们前面讲到的hasRepeatEvents()方法来进行判定。
动作按键主要针对游戏来设计的,在API
第10页共42页
杨永:
基于J2ME的手机游戏设计
中定义了一系列的动作事件:
UP,DOW,NLEFT,RIGHT,GAME_,AGAME_,BGAME_,CGAME_,D当按下这些按键时会映射到我们自己为每个按键事件编写的方法,来完成一些动作。
不过我们在MIDP2.0里我们已经有专门的游戏开发包了,所以我在这里就不重点介绍了。
触控事件主要面向高端设备,并非JTWI要求强制支持的,其核心方法为:
pointerPressed(),pointerReleased(),pointerDragged(),分别对应我们通常所用的移动设备手写笔的点,击,拖拽几个动作,我们在这三个方法里可以定义相应的事件处理函数。
在索爱P910C这样的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 国内外 手机 游戏 研究 现状