1、基于 JAVA 手机游戏论文摘 要JAVA 已经从一种平台无关的编程语言演变成一种与厂商及平台无关的健壮的服务器端技术,促使 IT 业界深入发掘以 Web 为核心的应用程序的巨大潜力。J2ME 的出现使这一变化达到了一种新的高度。J2ME,简称 Java2 平台袖珍版( Java 2 Platform ,Micro Edition (J2ME) ),是SUN 公司在 J2SE 和 J2EE 之后,致力于消费产品和嵌入式设备的最佳解决方案。作为 JAVA 的三个版本之一,J2ME 在无线编程技术中正发挥着它独特的作用。J2ME 为在小型电子设备上创建性能卓越的网络应用提供了一套完整的解决方案。它
2、也使设备制造商、服务提供商及应用开发人员为他们的用户发布新的软件应用成为可能。通过对 J2ME 的详细介绍我们可以从中了解到其自身的作用,近年来,随着 JAVA 手机的诞生,其无可替代的灵活性与轻便性致使 JAVA 手机游戏成为游戏市场的又一亮点,它的前景无可限量,必将在我们以后的生活中发挥着重要的作用。关键词:游戏编程, 事件, 描绘处理AbstractJava is already changed from a platform-independent programming language to a mission-critical technological with manufac
3、ture platform independent, and java encourage IT circle to deeply tap the huge potential of application with the care of Web. The emergences of J2ME push it to a new high level. J2ME( Java 2 Platform, Micro Edition (J2ME) ) called “Java 2 platform” for short a pocket-edition is a prefect solution pl
4、an of consume products and embedded equipment, after J2SE&J2EE in SUN company. J2ME is making a special effect at the wireless program technology. J2ME provide a complete set of solution plan, its also make it become possible that issue the new software application by the manufacture of equipment, s
5、ervice supplier and the people of develop application.Through the detail introduce of J2ME, the function of java is obvious. Of late years, follow the emerge of java mobile phone its unimpeded identity and portability make java mobile phone games become a new focal point of game market. J2ME have un
6、limited brighten and make an important role in the future life.山东凯文科技职业学院Keywords: Game programming, Deal with description, Case目 录引 言 .11 J2ME 技术概览 .21.1 J2ME 的概念 .21.2 J2ME 简介 .21.2.1 J2ME 架构 .21.2.2 JVM 虚拟机 .31.2.3 MIDP.31.3 手机游戏的发展 .41.3.1 目前国内的发展情况 .42.3.2 目前国际的发展情况 .52 游戏设计的需求分析 .72.1 MIDP 中的游
7、戏 API .72.2 游戏类构成 .72.2.1 Boxer 类的实现 .82.2.2 GameCanvas 类的功能及特点 .82.2.3 Sprite 类的功能及特点 .82.3 游戏角色的处理 .92.4 游戏中的事件处理 .92.4.1 key Pressed 方法 .92.4.2 key Released 方法 .103 手机游戏开发制作 .113.1 游戏编程 .113.2 格斗类手机游戏实例 .113.2.1 游戏背景介绍及开发环境 .113.2.2 MIDlet 的构成 .123.2.3 MIDlet 的生命周期 .123.2.4 MIDlet 的画面显示基础 .123.2.
8、5 游戏项目的创建 .143.2.6 命令种类及命令处理 .153.2.7 游戏中的描绘处理 .153.2.8 游戏状态的类变量 .173.2.9 按键事件的处理 .173.2.10 设计存在的难点 .18山东凯文科技职业学院4 结 论 .19参考文献 .20致 谢 .21山东凯文科技职业学院1引 言手机是人们日常生活中所用的非常频繁的通信工具,虽然现在其费用比有线电话高,但是其随时随地的沟通优势,使人们摆脱了线路的束缚。目前中国的一些大城市几乎人手一部或几部手机,正是由于手机的高普及率,使得无线移动商务才得以迅速普及和发展。JAVA 技术已经从一种最初用来编写与硬件无关的嵌入式系统的编程语言
9、变成了一种与厂商无关、与硬件无关的健壮的服务器端技术,它使整个企业界可以全面发掘以 Web 为核心的应用程序的巨大潜力。随着 JAVA 技术的不断更新提高,J2ME 技术的出现,使得手机游戏越来越成为我们关注的焦点。J2ME 技术目前最流行的就是在制作手机游戏方面,JAVA 手机的出现使得这一技术更有它的用武之地,发挥着他灵活、轻便、快捷的作用。下面在本篇文章中就将详细的介绍 J2ME 这一技术在手机游戏制作方面的具体过程以及其重要的作用。山东凯文科技职业学院21 J2ME 技术概览1.1 J2ME 的概念J2ME 的全称是 Java2 Micro Edition (J2ME )Java2 技
10、术微型版,与 J2SE、J2EE 一样都是有美国 SUN 微系统公司提出的 JAVA 技术规范。1.2 J2ME 简介J2ME 是为了能够开发运行在小型设备、独立设备、互联移动设备、嵌入式设备上的 JAVA应用程序而被提出的。J2ME 是建立在一个由概要描述、配置、JAVA 虚拟机和操作系统等部分组成的标准架构之上的,这些内容共同组成了完整的 J2ME 实时运行环境。它的技术核心是由一个 JAVA 虚拟机( JVM )及一套适合运行在上述设备环境上的 API 接口构成。J2ME 在 1999 年的 JavaOne 开发人员大会上初次亮相,它的目标是面向智能无线设备和小型计算设备的开发人员,这些
11、开发人员需要在他们的产品中整合跨平台的能力。无线设备和小型计算设备的消费者期望这些设备能够有较高的性能。他们希望小型计算设备有快速的响应时间,与同种设备相兼容,拥有功能完备的应用程序。消费者希望桌面计算机和笔记本电脑上的软件和功能同样能够运行在移动电话和个人数字助理上。为了满足他们的需求,开发人员必须重新考虑他们设计计算机系统的方式。开发人员需要利用商业计算机上现有的前端和后端软件的计算能力,并将这些能力传递到微型、移动和无线的计算设备上。J2ME 能够以最小的修改来实现这种传递,如果应用程序的设计是可伸缩的,应用程序就可以适应小型计算设备上有限的资源。J2ME 为在小型电子设备上创建性能卓越
12、的网络应用提供了一套完整的解决方案,能很好的解决软件跨平台的兼容性和安全性的问题。1.2.1 J2ME 架构J2ME 架构的模块化设计使应用程序可以灵活适应小型计算设备的限制。J2ME 架构没有替代小型计算设备的操作系统。相反,J2ME 架构由位于原生操作系统之上的多层软件组成,这些软件共同称为“连接有限设备配置” (Connected Limited Device Configuration, CLDC) 。安装在操作系统之上的 CLDC 形成了小型计算设备的运行时环境。J2ME 架构由 3 个软件层组成:第一层是包括在内的配置层,此层次直接与原生操作系统进行交互。配置层还处理 profil
13、e 和 JVM 之间的交互。第二层是 profile 层,由小型计算设备的应用程序编程接口(API)最小集合组成。第三层是 Mobile Information Device Profile( MIDP )层。MIDP 层由用户网络连接、永久存储和用户界面的 java API 组成。还能够访问 CLDC 库和 MIDP山东凯文科技职业学院3库。1.2.2 JVM 虚拟机 JVM 是专门为微型电子设备与资源受限设备如:手机、寻呼机、移动互联网设备、家用微电子设备等设计的一种轻便、紧凑的 JAVA 虚拟机。JVM 可以为微型电子设备提供一个完整的 JAVA 运行环境,除了一些微型设备所必需的适当的
14、功能有所不同外,它是由 JAVA 虚拟机规范定义的真实的 JAVA 虚拟机。它是专门为那些受资源限制,只有几百 K 字节内存的微型设备设计的。JVM 起初是由 SUN 微系统实验室为一个名叫 “Spotless”的项目创建的。它的目标是为资源受限制的 Palm(是目前较为流行的掌上电脑操作系统)可连接的电子设备,实现一个 java 虚拟机。基于上述原因,JVM 具有以下几个特点:(1)小,仅具有 40KB 至 80KB 的静态内存。(2)轻便、精巧。(3)模块化并可定制。(4)尽可能完全紧凑的完成设计目的。1.2.3 MIDPMIDP 是专门为互联受限设备配置设计的,它为移动设备提供了一套 A
15、PI 集合,MIDP 包含用户界面类、持久存储功能与网络功能。它同时也包括一个供用户下载新应用到终端设备的标准运行环境。运行在 MIDP 下的小应用程序叫做 MIDlet 移动设备小应用程序,它与 Applet 类似。MIDP 要求平台设备提供一个机制用来存储简单的数据记录,通过正常的平台事件,比如重新启动和电池更新维护系统的完整性。MIDP 是以 SUN、Motorola、Nokia 为中心的 MIDPEG 组织(Mobile Information Profile Expert Group)所制订出来使用在 CLDC 上的 Profile,是以能使用在移动电话、双向对讲机、可无线通信的 P
16、DA(个人数字助理)上面为前提设计出来的。另外,像日本国内的 NTT DoCoMo、J-PHONE、KDDI 等电信商与移动电话制造商也都曾参与了 MIDPEG。MIDP 是在 CLDC 的功能上附加提供适合目标设备用的 GUI 与事件处理功能。这样一来,就可以当成 MIDP 应用程序( MIDlet)来运行了。MIDP 由于是由多个企业所共同策划出来的开放标准,因此主要的移动电话制造商也会制造出大量的对应机种。也就是说,以 MIDP 为基准所制作出来的应用程序,也将可以在流通于市面上的移动电话上执行。另外,MIDP 不仅限于移动电话,也已经被移植到 PDA Palm OS 上,而以 MIDP
17、 for Palm 山东凯文科技职业学院4OS 的名字来称呼(与 KJava 是不同的) 。在不使用各电信商的扩展 API 的时候,制作给移动电话用的 MIDlet 也将可以使用在 Palm OS 上面。由于未来 MIDP 也将会搭载到不同设备之上,也由于其兼容性高,只要写过一次程序,就可以在其他移动电话或是移动电话以外的设备上执行;而这也就是它最大的好处。1.3 手机游戏的发展手机是现在人们生活中必不可少的通讯工具之一,有着其重要的作用,现在的人们越来越认识到它的重要性。作为手机中的一部分手机游戏,也发挥着它特有作用。可以说,手机游戏发展到今天已经越来越为人们所熟知,也越来越受到人们的喜爱。
18、但是应该看到,国内手机游戏的发展还是刚刚起步,与欧美日韩等先进国家还有着一定的差距,但是这种差距正在一步一步的缩小。1.3.1 目前国内的发展情况随着技术对游戏经验的促进,游戏市场持续增长。商业IT革命为我们节省了时间和金钱,从而提高了我们的工作水平,我们因此花费更多的时间和金钱在游戏上,来改善生活的整体质量。甚至在当今困难的经济时代,游戏仍保持快速增长,它仍然是盈利行业的组成部分。Java开发者应该注意到这里蕴藏着的巨大的商机。在全球数字娱乐的快速发展浪潮中,中国的游戏产业正以其惊人的井喷式发展速度前进,牢牢吸引住了世界目光。当然,目前中国游戏产业一片大好的形势可以说是电脑网络游戏一枝独秀的
19、成绩。据信息产业部 2004 年 10 月统计出的主要业务量数据表,到本年 10 月止,中国移动电话用户合计32503.4 万户,比上年末新增 5508.1 万户。明年或者后年 3G 手机牌照发放下来以后,手机游戏的硬件设备更是日趋完善。2004 年里,又有很多手机游戏中小型开发企业成立,很多新的手机游戏涌入内容市场。似乎在这红红火火形势下“手机游戏马上会火起来”这一想法已经点燃了很多人心里的希望之火。手机游戏市场的确有很大的市场发展空间,前景看好,但是在中国游戏市场中马上占据主流地位是不大可能的,那应该还需要至少一年的“磨合期” 。 中国大众还不大熟悉手机游戏这一新鲜事物,在消费心理和习惯上
20、需要引导和培养,尤其是在电脑网络游戏大行中国的时期。这也是一个消费对象需要被确定的问题。什么样的人会为手机游戏而消费呢?而这直接关系到这一新兴产业的存活。只有有了消费需求,才能带动整个手机游戏产业链的循环。 在发展不见明朗的萌芽期,手机游戏营运方式、费用结算方式也是需要一段摸索时间的。内容提供商、电信运营商、手机终端生产商之间利益的协调还需要实践地调整。而这都是目前中国手机游戏界内无法做到的事情。手机游戏肯定会有大发展,但是,目前不适合非理智地冒进。9山东凯文科技职业学院52.3.2 目前国际的发展情况在国际上日本、韩国在这方面处于领先地位。日本在手机游戏领域占据了绝对的领导地位。1999年,
21、包括北美在内的很多国家和地区对手机游戏还一无所知,日本就已拥有超过30万的手机游戏用户,占全球手机游戏用户的70以上。2001年初,当短信游戏在全球逐步发展之时,日本NTT DoCoMo已经推出了近500款i mode游戏。2004年4月,日本计算机娱乐协会(CESA)发表的统计报告显示,2003年日本国内利用手机上网玩游戏的用户数达897万人。日本在手机游戏领域走在世界前列的主要的原因是:其一,日本拥有庞大的移动数据业务用户群。经过近年来的不断发展,到2004年6月底,日本移动用户数已经达到8270万,其中7000万以上的用户使用移动数据业务。NTT DoCoMo的imode业务是世界公认的
22、经营最成功的移动数据业务。而手机游戏作为其中的一项业务,拥有广泛的用户群。其二,日本是传统的电子游戏大国。世界传统游戏市场的巨头索尼、世嘉和任天堂都在日本,他们手中掌握了丰富的视频游戏和PC游戏资源,都可以转化为手机游戏产品。 2004年,NTT DoCoMo推出了新一代FOMA手机,具有更强大的“iappli”( Java )游戏功能。新一代FOMA手机,把软件存储区域和数据保存区域(高速缓存)的总容量提高到现有230k的2倍以上,从性能上看已经超过了任天堂GBA掌机。这说明,随着日本手机功能的升级和无线宽带网络数据承载能力的提高,手机游戏已经对高端的游戏厂商产生了强大的吸引力,手机游戏已不
23、再是简单游戏的代名词。到2007年,日本的手机游戏市场规模将会增长到近6亿美元。近年来,韩国网络游戏一直保持着高速增长的势头,这为手机游戏的发展奠定了良好的用户基础。与此同时,韩国的移动通信用户基础非常雄厚。2004年,在韩国总共4500万人口中,移动通信用户数已经超过了3500万。韩国政府一直在努力推动包括网络游戏和手机游戏在内的数字内容产业的发展,相应的优惠政策和充足的资金投入催生了大批的手机游戏开发商,有力推动了手机游戏内容的开发进程。与此同时,诸如NC Soft、Webzen 、Nexon等韩国领先的网络游戏开发商也积极跻身移动游戏领域,而主要的移动门户运营商NHN和DAUM积极致力于
24、移动在线交互式游戏的开发,从而促进了手机游戏内容的繁荣。虽然韩国的手机游戏产业发达,但其国内市场是有限的。为此,随着市场竞争的加剧,韩国企业致力于推动手机游戏产品的出口。目前,韩国手机游戏产品主要向美国、日本和欧洲出口,出口的市场份额分别为:美国56、日本19.9、欧洲12.6、其他国家11.5。欧洲很早就推出了手机游戏业务,但在2003年以前,欧洲手机游戏市场还主要停留在SMS和WAP游戏时代。与日韩相比,欧洲的手机游戏市场相对滞后。随着移动数据业务的不断发展和市场压力的不断加大,欧洲移动运营商已认识到改善手机游戏市场环境的必要性和紧迫性。在终端问题上,欧洲的运营商开始直接引入日韩的高端手机
25、,山东凯文科技职业学院6打破了传统欧洲手机市场为欧洲手机厂商垄断的局面;在经营模式上,他们也采取了开放的数据业务经营模式。比如Vodafone公司就推出了Vodafone Live,通过合作分成的模式鼓励手机游戏开发商的积极参与。也有公司直接引入日本imode的运作模式和游戏内容。这些举措大大推动了欧洲手机游戏业务的发展。到2003年年底,欧洲手机游戏市场的环境已基本成熟,Java手机在欧洲已经十分普及,还出现了像N Gage这样的专用手机游戏终端。据预测,2008年欧洲手机游戏市场达到30亿欧元,占移动娱乐内容收入的19。美国手机游戏市场起步虽晚,但是发展却十分迅速。从2002年秋天开始,美
26、国大多数移动网络速度得到了提升,更加适于手机游戏业务的发展。如今,美国移动运营商每月都在推出新的游戏,手机厂商也在不断推出新的支持手机游戏的产品。从游戏提供的数量看,美国移动运营商已经大大超过了欧洲运营商。2003年,手机游戏已经成为美国众多移动数据下载应用的第一应用。IDC数据显示,2003 年美国手机游戏用户渗透率为 7.9;预测到2008年,美国手机游戏渗透率将达到34.7,达到6520万户的规模。Yankee Group的分析师表示,美国手机游戏业务的迅速发展,使得手机平台有望成为继电脑、控制杆、掌机游戏、互联网之后的第五大游戏平台。从当今国内外形势看,我国在手机游戏制作方面还刚刚处于
27、起步阶段,还不像日韩和欧美国家处于一个高速发展阶段。我们只是刚刚引进这一技术,但是随着时代的发展,我们应该看到手机游戏制作在中国的市场以及在中国发展的潜力。我们要相信在不久的将来,国内手机游戏市场一定回迎来一个春天的! 山东凯文科技职业学院72 游戏设计的需求分析2.1 MIDP 中的游戏 APIMIDP是专门为互联受限设备配置设计的,它为移动设备提供了一套API集合,MIDP 包含用户界面类、持久存储功能与网络功能。早在MIDP1.0版本时,是没有单独的游戏API的,在MIDP2.0后增加了一个新的专门的游戏软件包Javax.microedition.lcdui.game,顾名思义,此包中定
28、义了游戏开发的各种类型。这个软件包是一个专门为在移动信息设备上开发游戏应用而设计的,所以又叫作游戏API。10它里面的成员类有以下几个:GameCanvas、 Layer、LayerManager 、Sprite、TiledLayer。GameCanvas 是提供基本的游戏界面;Layer是一个用来表示游戏中的可视元素的抽象类;LayerManager管理一系列的Layer;Sprite 是一个基本的可视元素,它本身包含了许多操作,比如将一个图片切分成若干画面帧(Row Frame) ,再对这些画面帧编排出一个动画序列(Frame Sequence) ;TiledLayer 是一个可以被许多图
29、片填充的类似于表格的可视元素。10本论文在设计游戏过程中涉及到其中的 GameCanvas类和Sprite 类。2.2 游戏类构成在游戏中,主要的一些类构成有Pocket Boxing 、Boxer、Enemy、GameCanvas 。其中Pocket Boxing类继承了MIDlet 类,用来进行MIDlet的Live Cycle 控制; Boxer存储了玩家的拳击手的信息,进行拳击手的描绘;Enemy存储电脑控制的拳击手的信息,进行拳击手的描绘,它继承了Boxer类;GameCanvas 继承了Canvas类,进行画面的描绘与操作。各类都是用与类名称相同的文件名来存储的。3 各类间的关系如图3.1。DefaultPackageMIDlet Canvas InterfaceRunnable InterfaceCommandListenerPocketBoxing GameCanvasBoxer Enemy