【精品】:国内外手机游戏的研究现状_第1页
【精品】:国内外手机游戏的研究现状_第2页
【精品】:国内外手机游戏的研究现状_第3页
【精品】:国内外手机游戏的研究现状_第4页
【精品】:国内外手机游戏的研究现状_第5页
免费预览已结束,剩余45页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【精品】:国内外手机游戏的研究现状武汉科技大学中南分校毕业设计(论文)目录第一章引言11.1 国内外手机游戏的研究现状11.2 手机游戏的技术分类11.3 研究意义2第二章基于J2ME的手机游戏开发平台概述42.1 什么是J2ME 42.2 J2ME平台体系结构42.3KVM52.4CLDC62.5 移动信息设备描述(MIDP)82.6 MIDP应用程序82.7 MIDP UI 组件.9第三章手机游戏开发的相关知识及工具 123.1 手机游戏的画面.123.2 手机游戏中的按键133.3 线程使用143.4 手机硬件平台特点143.5 手机游戏开发工具软件15第四章手机游戏一 “逃亡者”的设计

2、与实现 174.1游戏描述174.2 可行性研究174.3 游戏设计174.4 详细编码设计.194.5 程序打包、下载安装与运行194.6 最后效果图20 第五章结束语21参考文献22致谢23附录24第1页共42页杨永:基于J2ME的手机游戏设计第一章引言1.1 国内外手机游戏的研究现状近年来,因特网在国内迅速普及,导致了网络游戏的高速发展。同样手机的普 及,导致了手机游戏市场呈现爆炸式的发展。尤其是国内外巨大的手机拥有量,更 是让商家看到了商机,手机游戏市场利润将会十分丰厚。面对潜力如此巨大的手机 游戏市场,各游戏开发商、运营商、服务商以及手机终端厂商等都纷纷开始了各自 的应战准备,以便抢

3、占商机。诺基亚、索爱、摩托罗拉等各大手机厂商开始不断的提升手机在游戏方面的性 能,同时还在手机操作系统方面采用开放式的平台,方便用户享受不同的1手机游戏业务。而国内游戏开发商,如盛大、网易等公司,纷纷跻身手机 游戏开发商行列。新浪、搜狐等著名的门户网站,也纷纷涉足手机游戏领域,相继 开辟了各自的手机游戏频道和栏目,其他一些游戏网站也都全面加快了手机游戏开 发的步伐。目前 SU心司的J2ME CLDC/MID即境和高通公司的 BREW(Binary Runtime Environment for Wireless)客户端程序是国内外游戏开发的两大主要平台。中国电信业巨头中国移动建立了无线 Jav

4、a增值服务体系,推出了基于 SU心 司的J2ME环境的“百宝箱”业务,包括游戏类、商务类、生活类等丰富的数据服 务。中国移动用户只要使用支持 Java的手机,通过GPRS勺无线上网方式,访问移 动梦网门户的“百宝箱”服务菜单,就能方便地下载各种由 Java语言编写的应用 程序。而中国联通与高通公司合作,采用高通公司的BREM台技术,推出了 “神奇宝典”业务,中国联通用户可以从联通公司的应用下载服务器上以无线方式下载 应用程序。1.2 手机游戏的技术分类手机游戏按实现的技术分,可分为嵌入式游戏、浏览器游戏、基于J2ME和其它的解释语言的游戏、基于 C+g用程序和其它编译语言的游戏等。1.3 入式

5、游戏嵌入式游戏在出厂时就固化在手机的芯片中,像Nokia的“贪吃蛇”就是一个经典的例子。这些游戏是为手机量身定做,能够充分发挥特定手机的强大性能,从 而达到其他类型的游戏所无法达到的效果,而且嵌入式游戏在运行过程中不会让用 户产生费用。但是这些游戏是依据手机生产厂商的平台进行开发1 J2ME开发网?J2ME中文教程?PDF电子文档,2005-9-5第1页共42页武汉科技大学中南分校毕业设计(论文)的,出厂时设置了几款游戏,玩家就只能在这几款游戏当中进行选择,而不能 根据用户自己的喜好对游戏进行升级、删除等操作,所以嵌入式游戏的缺点也是明 显的,无法给玩家带来新鲜感,玩家容易对固定的几款游戏产生

6、厌倦。2 浏览器游戏WAP1一种用手机上网的网络服务。进行 WAP游戏时,通过手机自带的 WA捌 览器来浏览手机网站上的页面,并通过页面中描述的内容来进行游戏。形式上类似 于网上常见的一些心理测验之类的交互手段。WAP游戏没有图片和容量的限制,但这类游戏大多采用文字交互方式,这样游戏性就不强,缺乏直观感觉。而且在收费 上,WAP游戏费用比较高,因为在游戏的过程中,您不仅需要向服务商交纳一定的 费用,而且同时要向中国移动或中国联通交纳一定的流量费用。.基于C+g用程序和其它编译语言的游戏 3使用C+g用程序和其它编译语言开发游戏也是一种较好的开发方式。编译语 言程序能提供更好的控制用户界面,而且

7、编写的应用程序相比用脚本语言编写的程 序,效率更高、使用的内存更少,并且执行得更快。但由于这些编译语言往往不具 有跨平台性,而且由于编译语言的特点,往往需要较长的开发周期。4.基于J2ME和其它解释语言的游戏Java 2 Micro Edition (J2ME)是一种针对移动电话和 PDA等小型设备的Java语言。采用J2ME极大的提高了手机支持游戏的能力。它有比 WAP游戏更易控制的 界面,J2ME游戏摆脱了纯文字交互的方式,它允许使用图形动画,并且可以通过 无线网络连接到远程服务器。而且 Java是面向对象程序设计的语言,它最大的特 点是一次编写、到处运行,即平台无关性。现在支持 Java

8、的手机比较普及,它也 已经成为目前比较好的移动游戏开发环境。1.3研究意义对手机功能的扩充。手机游戏成了电信增值业务中一项主要的应用,在公交车等公共场合不时会看 到拿着手机玩游戏的人。相比较早开发的“贪吃蛇”、“俄罗斯方块”等手机游 戏,如今的手机游戏,无论是从视觉效果、听觉效果还是游戏的可玩性来说,都要 精彩的多。在全球,移动电话数量巨大,除美国之外,其他各个发达国家拥有手机 的人数比拥有计算机的人数还多。在我国,手机拥有量甚至超过了美国的人口数 量,而且每个月手机数量还正以惊人的速度递增着。手机市场的高速增加带动了手 机游戏市场的急速膨胀,基于 JAVA BRE惭技术平台第2页共42页杨永

9、:基于J2ME的手机游戏设计2的手机游戏市场规模纷纷呈现几何增长态势。2林邦杰?Java程序设计入门教程?中国青年出版社,2001-9-15第3页共 42页武汉科技大学中南分校毕业设计(论文)第二章 基于J2ME的手机游戏开发平台概述2.1什么是J2MEJ2ME是SUN公司针对嵌入式、消费类电子产品推出的开发平台,与 J2SE和 J2EE共同组成Java技术的三个重要的分支。J2ME实际上是一系列规范的集合,由JCP组织制定相关的Java Specification Request(JSR)并发布,各个厂商会按照规范在自己的产品上进行实现,但是必须要通过TCK测试,这样确保3兼容性。2.2 J

10、2ME平台体系结构J2ME平台是由配置(Configuration) 和简表(Profile) 构成的。配置是提供给最大范围设备使用的最小类库集合,在配置中同时包含Java虚拟机。简表是针对一系列设备提供的开发包集合。在 J2ME中还有一个重要的概念是可选包(Optional -Package),它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能J2ME中制定了 JSR82(Bluetooth API)提供了对蓝牙的支持。目前,J2ME中有两个最主要的配置,分别是 Connected Limited DevicesConfiguration(CLDC)和 Connected De

11、vices Configuration(CDC) 。他们是根4据设备的硬件性能进行区分的。CDC的硬件参数:(1) 2M以上内存。(2)具有网络连接能力,通常为无线网络。(3)需要实现java虚拟机规范的全部功能。(4) 32 位或者64位的处理器。CLDC的硬件参数:(1) 512 KB 以下内存(2)有限能源供应(通常使用电池)。(3)有限或非持续网络连接。(4)简单的用户界面。(5) 16 位或者32位的处理器。34黄聪明?JAVA动通信程序设计J2ME MIDP清华大学出版社第4页共42页杨永:基于J2ME的手机游戏设计从上述的标准中我们不难看出 CLDC主要针对那些资源非常受限的设备

12、比如手机、PDA双工寻呼机等。而CDC主要面对那些家电产品,比如机顶盒、汽车导航系统等。简表是以配置为基础的,例如 Mobile Information Devices Profile(MIDP)就是CLDC上层的重要简表。与配置的纵向特性不同的是,简表是横向 的。-1是J2ME体系结构的框图:下图2The J2ME EnvironmentJ2ME Appliacation LayerMIDLetMIDLet Class LayerMIDLet Application Manager图2-1J2ME体系结构框图(1)主机操作系统层(Host Operating System Layer):这一

13、层为特定硬件设备的操作系统层。(2) Java 虚拟机层(Java Virtual Machine Layer):这一层是 Java 虚拟机的一个实现,它是为特定为特定设备的主机操作系统定制的,支持一个特定的J2ME配置。(3)配置层(Configuration Layer): 配置层定义Java虚拟机的功能和特定类别设备上可用的Java类库的最小集。从某种程度上说,一个配置定义了Java平台的功能部件和库的共同性,开发者可以假设这些功能部件和库在属于某一特定类别 的所有设备上都是可用的。这一层对用户是透明的,但它对描述的实现者非常重 要。(4)描述层(Profile Laver):描述层定义

14、了特定类别设备上可用的应用程序编程设备的主机操作系统定制的,支持一个特定的J2ME配置。在手机上,KVM, CLDC, MID吩别实现了 J2M*系结中的Java虚拟机层、 配置层和描述层。2.3 KVMCLDC和MIDP都是运行在Sun公司的KVMt。KVM1一个专门为小型、资源受 限设备所设计的紧凑的、便携的 Java虚拟机。Java虚拟机是Java程序语言的核 心,只要Java程序在执行,Java虚拟机也必定在执行。Java虚拟机是实际执行 Java程序的引擎,也是Java语言具有这么多优良特色的关键所在。当你执行Java程序时,程序内的指令其实并不是由硬件直接执行,而是由一个特别的软第

15、5页共42页武汉科技大学中南分校毕业设计(论文)件一一读取这些指令来执行的。简单地说,Java程序不是被底层的CPUft接执 行,而是被“虚拟CPU执行的,所谓的虚拟CPIM实就是计算机上执行的一个特 别软件。虚拟机的优点甚多,比如移植方便,只需要移植虚拟机和相关的支持程序 库到新的硬件架构上,所有上层的应用程序都不需要更动就完成移植了。虚拟机的 另一个好处是它在计算机软硬件间加入一抽象层来分离和保护,5可以防止恶作剧的程序暗中搞鬼。2.4 CLDC2000 年 5 月,Java Community Process(JCP)公布了 CLDC1.0 规范(即 JSR30)。作为第一个面对小型设备

16、的 Java应用开发规范,CLD久由包括Nokia , Motorola和Siemens在内的18家全球知名公司共同协商完成的。 CLDCM J2ME核 心配置中的一个,可以支持一个或多个 profile o其目标主要面向小型的、网络连接速度慢、能源有限(主要是电池供电)且资源有限的设备,如手机、机顶盒、 PDA 等。CLDC的核心是虚拟机和核心类库。虚拟机运行在目标操作系统之上,对下层的硬件提供必要的兼容和支持;核心类库提供操作系统所需的最小的软件需求。1核心类2库虚拟机可选包Profile配置操作系统图2-2 CLDC标准构架2.4.1 CLDC的目标(1)为小型的、资源受限的连接设备定义

17、一个 Java平台标准。(2)允许向上述设备动态的传递 Java应用和内容。(3)使Java开发人员能够轻松的在这些设备上进行应用开发。2.4.2 CLDC的整体需求(1)能运行在绝大多数的小型的、资源受限的连接设备上。(2)用CLDC为上述设备开发的应用尽可能的不使用设备的本地系统软件。5卢军?J2MES用程序开发手机、PDAS序开发捷径?中国铁道出版社第6页共42页杨永:基于J2ME的手机游戏设计(3)定义能应用在绝大多数上述设备上的最小子集的规范。(4)保证在不同类型上述设备之间代码级的可移植性和互操作性。2.4.3CLDC的硬件需求由于CLDC要面向尽可能多的设备,而这些设备所使用的硬

18、件又各不相同。因 此CLDC规范中并没有指明需要某种硬件支持,只是对设备的最小内存进行了限 制。CLDC规范中要求硬件必须达到以下要求:(1)至少160KB的固定内存以供虚拟机和 CLDC核心类库使用。(2)至少32KB的动态内存以供虚拟机运行时使用(堆栈等)。这里所说的固定内存是指拥有写保护,不会因关机而抹去的ROM对于具体的设备的具体实现,这些需求也可能有变化。这里所规定的160KB是CLDC规范中的要求,实际也可以是128KB左右。2.4.4 CLDC的软件需求和硬件类似,CLDC上运行的软件也是多种多样的。例如,有些设备支持多进 程操作系统或者支持文件系统;而有些功能极其有限的设备并不

19、需要文件系统。对 于这些不确定性,CLDCR定义了软件所必须的最小集合。CLDC规范中要求操作系 统不需要支持多进程或是分址空间。2.4.5 CLDC的功能范围在CLDC1.0版本中定义了以下功能:(1) Java 核心语言与Java虚拟机的特性(2)核心Java类库(3)输入/输出(4)对网络的支持(5)对安全性的支持(6)对国际化的支持2.4.6 CLDC 特征安全(2)遵守Java语言规范(3)遵守Java虚拟机规范(4)要求类文件验证J2EE和J2SE为桌面计算机和服务器的企业级应用和开发提供了非常丰富的库 函数。不幸的是这些库需要几十兆的内存来运行,因此并不适合于资源受限的小型 设备

20、。所以CLDCM对小型受限设备重新制定了一个类库。为了保证应用程序的兼 容性和可移植性,包括进 CLDC勺大多数类库都是J2SE中规定的子集,其它一些是 由CLDC®定的专用于移动设备的类。包括:从J2SE中继承的第7页共42页武汉科技大学中南分校毕业设计(论文)6类、国际化支持类、系统属性类、CLD咬用类四个方面。2.5移动信息设 备描述(MIDP)J2ME®供了描述的概念,使得可以为特定的设备家族定义相同的Java平台。描述可以满足两种明显不同的可移植性需求:(1)描述为在一个特定的设备家族实现应用提供了完整的工具,比如传呼机、 机顶盒、移动电话、洗衣机或智能玩具。(2

21、)可以创建一种描述来支持重要的、一致的一组应用,这些应用可能会在几 各不同的设备上运行。简单地说,描述就是应用和市场的设备家族之间的协议。处于同一个设备家族 中的所有设备都必须实现其描述所定义的特征,并且要求应用只使用这个特定描述 所提供的功能。在实现层次上,描述被简单地定义为应用在特定配置上的JavaAPI和类库的集合,同时为市场中特定的设备家族提供了附加的面向7特定领域的功能。现在,己经有了五个规范化了的描述,如表 2-1表2-1五个规范化描述描述名称下层配置Mobile information device profile(MIDP) CLDCPersonal digital assis

22、tant profile CLDCFoundation profile CDCPersonal profile CDCRMI profile CDC2.6 MIDP应用程序CLDG口 MIDPffl合起来为创建移动电话应用程序提供了完整的环境。MIDP应用程序或者称为MIDlet.其模型如图2-3所示6 JSR-000139 Connected Limited Device Configuration 1.1 7第8页共42页杨永:基于J2ME的手机游戏设计The J2ME EnvironmentJ2ME Appliacation LayerMIDLetMIDLet Class LayerMI

23、DLet Application Manager图2-3MIDlet应用框MIDlet有三个状态,分别是 pause、active 和destroyed。在启动一个MIDlet的时候,应用管理软件会首先创建一个MIDlet实例并使得他处于pause状态,active状态,也就是所说的运行状当startApp()方法被调用的时候MIDlet 进入态。在 active 状态调用 destroyApp(booleanunconditional) 或者 pauseApp() 方法可以使得MIDlet进入destroyed或者pause状态。值得一提的是 destroyApp(booleanuncond

24、itional) 方法,事实上,当destroyApp()方法被调用的时候,AMS通知 MIDlet进入destroyed 状态。在destroyed 状态的MIDlet必须释放了所有的资 源,并且保存了数据。如果 unconditional 为false的时候,MIDlet可以在接 到通知后抛出MIDletStateChangeException而保持在当前状态,如果设置为 true的话,则必须立即进入destroyed状态。下图2-4说明了 MIDlet状态改变情况:StartstartAppActive PausedpauseAppdestroyApp destroyAppDestroy

25、ed图2-4 MIDlet 状态图2.7 MIDP UI 组件In组件与低级绘制相比,用在游戏开发上的机会较少,但还是会到。所谓 UI 组件,是指继承了 javax.microedition.lcdui.Screen 类的 javax.micr oedition.ledui.Alert,javax.microedition.lcdui.Form,javax.microedition.lc dui.TextBox,javam microedition.lcdui.List 等。下图为我们展示了整个LCDUI包的体系:第9页共42页武汉科技大学中南分校毕业设计(论文)Display Command

26、ListerTicker Displayable CommandCanvas ScreenImageGraphics Font 图2-5 LCDUI包的体系Screen类属于高级图形用户界面组件,Canvas是低级图形用户界面组件,在 同一时刻,只能有唯一一个 Screen或者Canvas类的子类显示在屏幕上,我们可 以调用Display的set Current。的方法来将前一个画面替换掉,我们必须自行将前一个画面的状态保留起来,并自己控制整个程序画面的切换。同时我们可以运用 javax.microedition.lcdui.Command类来给我们的提供菜单项目的功能,分别是:Command

27、.BACKCommanCommand. CANCELCommand.EXIT Command.HELP Command.ITEM Comm and.OK Command.SCREEN Command.STQ啾们在 Display able对象中定义了 add Command(和remove Command(两个方法,这就意味着我 们可以在高级UI和低级UI中同时使用Command,同时我们通过注册 Command 事件来达到事件处理的目的,即 Comman龙、须与Command Listener接口配合使用 才能反映用户的动作。与高级UI相比,低级UI就自由很多,任何时候我们可以调用repai

28、nt()产生重绘事件,调用完了 repaint()会立刻返回,调用paint()回调函数则是由另一个 专门的线程来完成。底层事件大致可分为三类 :Press Events(按键事件),Action Keys(动作按键,PointerEvents(触控事件)。我们将围绕这三个主题来介绍一下这种事件的用法键事件的几个核心方法为:keyPressed() , keyReleased() , keyRepeated(), 当按键按下时会触keyPressed(),当松开按键时,会触发keyReleased(),当长时 间按住按键时会触keyRepeated(),但是RepeatEvents不是JTWI

29、要求强制支持 的,所以使用之前要进行测试,看设备是否支持。在Canvas里面我们每按下一个按键都会触发keyPressed()函数,并传入相应位置的整数值,我们在 MIDP规范中 可以很容易的发现,KEY_NUM0KE NUM9+个常数分别彳t表键盘上的0-9还有两 个功能键,KEY_STARKEY_POUND果我们传入的值小于0,代表我们传入了不 合法的keycode,某些机器上还支持连续按键响应,但这并不是JTWI规定要支持的,所以我们在进行实际开发之前一定要用我们前面讲到的hasRepeatEvents()方法来进行判定。动作按键主要针对游戏来设计的,在API第10页共42页杨永:基于J

30、2ME的手机游戏设计中定义了一系列的动作事件:UP, DOWNLEFT, RIGHT; GAME_AGAME_B GAME_CGAME_D当按下这些按键时会映射至ij我们自己为每个按键事件编写的方 法,来完成一些动作。不过我们在 MIDP2.0里我们已经有专门的游戏开发包了, 所以我在这里就不重点介绍了。触控事件主要面向高端设备,并非JTWI要求强制支持的,其核心方法 为:pointerPressed() , pointerReleased() , pointerDragged(),分另U对应我们通 常所用的移动设备手写笔的点,击,拖拽几个动作,我们在这三个方法里可以定义 相应的事件处理函数。

31、在索爱 P910C这样的高端手机上,支持屏幕的触控事件, 我们在屏幕上点击,可以引发 pointerPressed()函数,并传入当时位置的坐标, 放开后,会引发pointerReleased()函数,同样也会传入坐标,具体的使用方法和 keyPressed()以及 keyReleased()大同小异。第11页共42页武汉科技大学中南分校毕业设计(论文)第三章手机游戏开发的相关知识及工具3.1手机游戏的画面MIDlet类本身并没有提供直接操作画面显示的功能,因此在 MIDlet类的子类 中也没有直接操作画面显示的功能。因此,我们要使用提供了管理画面显示功能的 javax.microeditio

32、n.lcdui.Display类。这个 Display 类可以javax.microedition.lcdui.Display类的子类显示在画面上。Displayable类的子类大致说来可以分为两种,分别为用来进行线与图形,图 像的低级描绘类,与用于显示警告与文本的输入,选择列表等UI组件类。前者是javax.micredition.lcdui.Canvas类后者是 javax.microedition. lcdui.Screen类与其子类(Alert,FomList,TextBox类等)之旬的关系。它们之旬的关系如下图3-1:ObjectObjectDisplayCanvas ScreenT

33、extBox Form List Alert图3-1画面显示类图用来显示画面用的 Display 对象,可以从 Display 类的Static 方法 Display#getDisplay(MIDlet) 值获取。通过在获取的 Display 对象,就可以让 Displayable对象显示在画面上。MIDP中可以使用的图像格式为 PNG&式。要获取图像,必须使用 javax.microedition.lcdui.Image 类的 Static 方法。Image 类的 Static 方法,提 供了从byte数据中提取Image对象,以及指定与MIDlet相同JAP文件的路径后获 取对象的

34、功能。创建Image对象的Static 方法:第12页共42页杨永:基于J2ME的手机游戏设计(1)Image#createImage(byteimageData,int imageOffset,int imageLengt)(2)Image#createImage(int souce) (3)Image#createImage(int width,int height)(4)Image#createImage(String name)为了减少额外错误处理,在调用出来的时候要进行try-catch 或throw。下面的代码展示了如何创建Image对象:Image img;Tryimg=Imag

35、e.createImage( "/mi.png " )catch(java.io.IOException e)上一章提到了 MIDP UI的组件,这里不在做解释。Form类 是能够将一个以上 的图像文本,Item 类的子类(ChoiceGroup , DataField , Gauge ImageItem)混合 显示的组件。List类,与PC的UT组件中的List组件一样,是用来显示项目的列 表,以让用户来进行选择为目的的组件。也可以是附有选择按钮的列表与附有复选 框的列表。文本框 是一个允许用户进行编辑的文本区域。一个文本框有一个足 以容纳的最大字符数量,具体的大小依赖于

36、不同M工DP的实现或者是移动电话的存储器大小。在文本框中字符显示的顺序和格式由设备决定。当文本框中的字符数 量大于一次被显示的字符数量时用户可以通过滚动来编辑一个文本框中的部分字 符。Alert , Form, List , TextBox 各类的超类 Screen 由于与 Canvas类一样,是 继承了 Displayable 类,因此可以用 Display # setCurrent(Displayable) 方法来将其显示在画面上。3.2 手机游戏中的按键在MIDP中,每一个按键事件将产生一个按键代码。在MIDP的Canvas类中定义的按键代码如下所示:KEY_NUM0 KEY_NUM 1

37、KEY_NUM2 KEY_NUM,3 KEY_NUM4 KEY_NUM5KEY_UM6 KEY_UM7 KEY_UM8KEY_NUM9KEY_STAR KEY_POUND上述按镶代码包括数字0,9、星号和#号。在某些特别的移动设备上可能还有其 他按键,但是在MIDP中规定的最低限度的按键就是上面定义的这些。使用这些按 键可以确保应用程序在任何符合 MIDP规范的移动设备上运行。在Canvas类中,定义了一些通用按键值,游戏按键中的UP DOWNLEFTRIGHT FIRE、GAME_AGAMEB在 MIDlet 运行时,这些按键的89按键值可以通过getKeyCode()方法确定。8洪维恩?J

38、ava 2面向对象程序设计?中国铁道出版社第13页共42页武汉科技大学中南分校毕业设计(论文)3.3 线程使用我们所创建的动画,是使用线程把所准备的多张图像按顺序描绘出来。所谓的线程就是指程序的运行单位,使用线程可以同时进行处理。在这里,为了要做出线程,我们会用到 Java.Lang.Runnable接口。同样的处理虽然也可以用到java.lang.Thread 类与Java.util.Timer 类来进行,不过它们都需要创建出继承各类的另一个类,所以还不如使用Runnable接口。将Runnable接口作为实现的类,必须将 Runnable接口的run()方法重新定 义。在这个run()方法

39、中,将要编写以线程所处理的内容。下面的代码为在 run() 方法内调用Canvas#repaint()方法来进行再描绘的范例。Import javax.microedition.lcdui.*Class ThreadTest extends canvas implements RunnablePublic void run( ) Repaint(); Protected void paint(Graphics g)只在以Runnable接口为实现的类中再定义run()方法,是不能让线程运行的。要运行的时候必须使用到 Thread类。要调用Thread类的Constructor中指定 Runna

40、ble接口参数的constructor ,来产生Thread对象。接下来,要用产生的 Thread接口来调用Thread # run() 方法来启用线程。线程类由于会在Thread#start() 方法被调用出来后调用 Runnable#run()方法,因此编写在run()方法中的处理将会被自动运行。线程的终止一般可通过两种方法实现;自然撤消或是被停止。自然撤消是指从线程的run()方法正常退出。通 常,当一个应用程序停止运行,例如用户从一个主页切换到另一个主页10时,它就会调用stop()方法来终止原主页中正在运行的所有线程。3.4手机硬件平台特点手机作为一种资源有限的设备,和 PC机相比,

41、有以下一些特点:(1)处理器运 算速度慢,远低于PC机的CPU1行速度。(2)存储器容量小、存取速度慢。9焦祝军、张威?J2ME£线通信技术应用开发?北京希望电子出版社10范 丹?J2MEft I-mode手机上的应用?现代计算机,2003年第7期第14页共42页杨永:基于J2ME的手机游戏设计(3)网络能力有限、带宽窄,并且因为手机的移动,容易导致手机网络地址的 变化。(4)输入/输出的多样性:手机不可能有PC机标准键盘那么多按键,也没有鼠 标。它的显示能力也非常有限,譬如显示尺寸小、分辨率低等。(5)手机由电池提供能源,会因为电池耗尽或接触不良造成经常断电。在编写14手机应用程序

42、时,必须对以上几个方面分别进行考虑。3.5手机游戏开发工具软件J2ME Wireless Toolkit(J2MEWTK)是Sun公司所发布的官方版 MIDP应用程序 开发工具,它为编写和测试 M工DP应用程序提供了一个完整的开发环境。J2ME Wireless Toolkit() 是制作手机用JAVA所必需的开发配套元件。安装J2MEWT必前,一定要先安装Java2 SDK 1.3以上的版本。如果没有安装 Java 2 SDK的话,J2MEWT即使安装完成,也无法进行 M工Dlet的开发工作。 J2MEWT提供菜单或按钮方式的命令。J2MEWTK有相应的编译(集成了预验步 当!)、打包、模拟

43、运行的菜单(或按钮),以及其它辅助工具。J2SE SDK()是制作所 有JAVA所必需的开发配套元件。11这里介绍一下 Java2 SDK及 J2ME Wireless Toolkit的安装。我们来安装制作JAVA所必需的开发配套元件J2SE SDK先打开。点击网页中的Download J2SE SDK链接,会出现了一个许可协议。仔细阅读 完协议后,选中Accept然后再点击Continue。这是选择安装程序的画面。因为你的 PC的OS是WINDOWST以你可以试着点 击Windows Installation, Multi-language ,来下载安装程序。启动安装程序后,会出现一个许可协

44、议的画面。看完后选同意,然后点击Next接下来,选择要安装的程序和安装到的地址。这里安装的程序就用默认的程序,安装地址也用默认的c:j2sdk1.4.2_05。设定数据库文件夹,这里我们也用默认的设置。点击Next,便开始安装了。用安装软件安装完毕后,就要开始设定 JAVA使用的环境。用鼠标右键点击桌 面上“我的电脑”图标,在显示选单中选择“属性”。打开“系统属性”,选择上面选单的“高级”,点击“环境变量”按钮,出现 环14赵海廷?java语言程序设计?2005-8-8 11 佚名?JAVA教程第15页共42页武汉科技大学中南分校毕业设计(论文)境变量设定窗口。在“用户变量”和“系统变量”的表

45、里如果没有“ Path”变量,就点击“新 建”。在“变量名” 一栏输入“ Path”,“变量值”栏里输入刚才安装的 J2SE SDK 的文件夹里“ bin”文件夹的路径。这里设定为c:j2sdk1.4.2_05bin。输完后点击“确定”键。下面就让我们来安装手机 Java开发元件J2ME Wireless Toolkit 。打开,点击 网页下部的Download按键。看完后选择Accept,然后点击Continue。于是显示安装程序选择画面,点 击Windows Platform的安装程序,并下载。出现Wireless Toolkit 的安装画面。选择Next。下面是许可协议的画面,看完后选择

46、Yes。设定正在安装的J2SDK勺路径。这里点击刚才安装 J2SE SDKBrowse.键,设定c:j2sdk1.4.2_05,设定完后,点击Next。接下来设定安装 WirelessToolkit的文件夹。这里使用预设的c:WTK104, 点击Next。在程序文件夹进行注册,这里使用预设的J2ME Wireless Toolkit1.0.4_01,然后点击Next。然后是设定的确认画面。若确认正确,点击Next。安装完毕后点击Finish键,结束安装。下面说明一下J2ME手机游戏开发环境:Java手机游戏的真实运行环境是 Java手机。一般来说,Java游戏的开发是先 在PC机上模拟,模拟成

47、功后再打包下载到手机上。本文的模拟环境是:(1)系统环境 Windows 2000(2)平台支持J2SDK-1.4(3)开发工具:采用MOTO-J2ME-SDK-5.2.仅拟器。第16页共42页杨永:基于J2ME的手机游戏设计第四章 手机游戏一 “逃亡者”的设计与实现 4.1游戏描述“逃亡者”是一款选取了一款 PC小游戏作为范例移植到手机上,它的中文名 为是男人就撑过30秒,虽然看似简单,但绝对有挑战性这是总结了无数日 本纵版飞行射击游戏中的武器而研究出的特殊训练软件,专门用来训练“战斗机” 飞行员。在漆黑一片的宇宙中,停着一架小飞船,突然四面八方出现很多黄色的小 点向小飞船聚集过来,小飞船凭

48、借速度优势和飞行技术从黄点之间的夹缝中飞过, 之后又落入新的包围圈中,直至被黄点击毁。坚持的时间越长,就说明水平越高。 持续不同的时间会得到不同的评价。如图 4-1所示是它原来的游戏画面。图4-1特训I:是男人就撑过30秒游戏画面4.2可行性研究1 .技术可行性:手机游戏“逃亡者”是一款较为小型的手机游戏,根据已有的手机游戏设计经验,利用J2ME*可以实现游戏的功能。根据己往的设计进度,一款小型规模的手机游戏大概有 2000,3000行代码。2 .操作可行性:该款游戏在所有支持JAVA的手机上都可运行,按键简单,易12于操作。3 .3游戏设计在进入游戏之前先显示闪屏图片,当用户按下键盘或等待3

49、秒后,进入游戏菜单。初始情况下,游戏菜单有三个选项,它们分别是开始游戏,游戏说明和高分记 录。选择开始新游戏则进入游戏,在游戏中如果按下非游戏键盘则中断游戏返回菜 单,此时菜单中增加了一个继续游戏的选项,可以返回游戏也可12 Jason Lam、Deaboway Choi#?J2ME游戏开发(第一版)?PDF 电子文档第17页共42页武汉科技大学中南分校毕业设计(论文)以重新开始新的游戏。当游戏结束时则进入游戏结束屏幕,屏幕上显示了玩家的成绩和等级,以及游戏的最好成绩,如果当前成绩是最好成绩,则手机震动并播放音乐庆祝成功。在菜单中选择游戏说明或者高分纪录,则进入相应的屏幕,它们都能用“后退”软

50、键返回菜单。菜单中的退出选13项用于退出程序。游戏的流程如图 4-3所示。闪屏新游戏退出游戏说明最高记录继续游戏非游戏操作游戏游戏说明最高记录Back Back 游戏结束游戏成绩等级最好成绩图4-3游戏系统流程图程序中一个有10个类,其中MIDlet主类负责各个屏幕的切换,它们是闪屏 屏幕、菜单、介绍屏幕、高分屏幕、游戏屏幕,游戏结束屏幕。游戏中使用到的类 为SoundEffects(音效)、Bullets(子弹)、Escapee(逃亡小飞机)。程序的类结构 如图4-4所示。SoundEffectsBulletescapeeCanvas s :GameCanvas escapeeMIDlet

51、SplashScreeSprite n :MIDlet:CancasEscapee:SpriteGameOverScreeHighScoreSCreeInstructionsScreen MenuListn n :From :List:Canvas :Form图4-2游戏总体类图下面介绍游戏线程:13李振鹏、龚剑?J2M盯机游戏开发技术详解第18页共42页杨永:基于J2ME的手机游戏设计游戏的线程主要由三个部分组成:检测键盘输入(与玩家交互),更新游戏场景 (处理游戏逻辑),绘制游戏画布。基本上所有的2D游戏都可以按照这三个模块来 设计,三个模块相互联系又互相联系,按照模块的思想来实现游戏线程

52、将更加面向 对象和便于理解。如果程序运行快于预期速度会使玩家感觉到抖动,从而影响游戏 效果,因此还需要检测每帧的运行时间,如果过快则等待一段时间,如果过慢则挂 起当前线程允许其他线程执行。线程的模块如图4-3所示:检测键盘输入更新游戏场景绘制游戏画布绘制缓冲区到屏幕否是否快于挂起当前线程预期速度是挂起等待图4-3游戏线程模块图4.4 详细编码设计逃亡者游戏一共实现了几个类包括用于关于游戏外部的闪屏类、菜单类、高分 屏幕类、简介屏幕类、结束屏幕类,以及用于游戏本身的游戏画布类、子弹类、逃 亡飞机类和声音效果类。详情见附录。4.5 程序打包、下载安装与运行J2ME Wireless Toolkit

53、 能自动对 MIDlet 套件进行打包。打包产生两个文件,即一个 MIDlet描述符 manifest.mf 和一个MIDlet套件JAR 描述符是一个小 文本文件,包含有关 MIDlet套件的信息。JAR包含组成MIDlet套件的类文件和 资源。第19页共42页武汉科技大学中南分校毕业设计(论文)4.6最后效果图图4-6游戏运行画面(一)图4-7游戏运行画面(二)图4-8游戏结束画面第20页共42页杨永:基于J2ME的手机游戏设计第五章结束语本文以基于J2ME平台的手机游戏的功能开发为线索,进行了相关理论研究,实验和项目开发。首先介绍了 J2ME的用途和基于J2ME平台手机开发的国内外发展

54、情况,然后研究介绍了 J2ME平台的特点和手机游戏开发的关键知识点。最后以如何在J2ME环境下实现一款射击类手机游戏的开发过程做了一个详细的介绍。其主 要工作为:1 .研究介绍了 J2ME平台的用途和基于J2ME平台手机开发的国内外发展情况。2 .研究介绍了 J2ME平台的特性和体系结构。重点介绍了 MIDP类库,应用程序 的体系结构,程序开发周期,工具和实例。3 .研究介绍了 J2ME游戏开发的关键技术知识。4 .实现了一款射击类手机游戏一 “逃亡者”,重点解决了游戏角色的表示,游 戏角色及游戏流程的控制,对游戏按键事件的处理,并对整个游戏开发过程做了一 个详细的介绍。第21页共42页武汉科

55、技大学中南分校毕业设计(论文)参考文献1 J2ME开发网?J2ME中文教程?PDF电子文档,2005-9-5-9-15 2林邦杰?Java程序设计入门教程?中国青年出版社,20013 4黄聪明?JAVA动通信程序设计J2ME MIDP?1华大学出版社5卢军?J2MEB用程序开发手机、PDA程序开发捷径?中国铁道出版社6 JSR-000139 Connected Limited Device Configuration 1.178洪维恩?Java 2面向对象程序设计?中国铁道出版社9焦祝军、张威?J2ME£线通信技术应用开发?北京希望电子出版社10范 丹?J2MEft I-mode手机上的应用?现代计算机,2003年第7期11 佚名?JAVA教 程12 Jason Lam、Deaboway Choi#?J2ME游戏开发(第一版)?PDF 电子文档13李振鹏、龚剑?J2M盯机游戏开发技术详解14赵海廷?java语言程序设计?2005-8-815 JAVA 手机网16温尚书?J2MES线通信实用案例教程?清华大学出版社17 Jason Lam , Deaboway Chou译?J2MEB戏开

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论