J2ME手机游戏的开发-Beckham Goal摘 要 J2ME(Java 2 Micro Edition)是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“Write Once, run anywhere”的Java特性而提高开发的效率。随着手机的日益普及、Java功能在移动设备上的实现,Java应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本论文着眼于J2ME技术的应用,开发一款简单的手机游戏程序--Beckham Goal。 论文在分析了实现小游戏的相关基础技术及理论后,对该游戏进行了功能需求分析、模块划分及总体设计,解决了游戏中涉及的碰撞检查以及其他若干关键技术,最后在J2ME平台下实现了该小游戏,并通过验证达到预期的效果。 关键词:J2ME;手机游戏; K-Java;碰撞检查 1 引言 1.1 手机游戏概述 手机游戏几乎是当今市面上所有手机所必有的。在几年前的机型中,游戏都是手机中自带的,称为嵌入式游戏,由手机生产厂商设计并直接嵌入在手机里面。这样的游戏用户不能自行开发、添加及删除,其游戏种类取决于不同的机型,是一种单机游戏。随后的几年兴起了一种基于短信的游戏,由用户发送特定字符串给短信游戏提供商,来控制游戏的动作或剧情的发展。随着wap的兴起,出现了一种基于浏览器的游戏,和短信游戏差不多,由用户手机通过wap登录游戏提供商所提供的网址,然后填写或选择相应表单来操作游戏。上面两类游戏都是基于文本的,操作比较繁琐,游戏性不强。短信游戏每做一次操作(也就是发送一条短信)需要花费一毛钱;wap游戏无论是通过CSD上网还是通过GPRS上网都需要出上网费用。两种游戏的花费都比较高。现在新出的手机很大一部分都支持Java程序下载,而且这是一种趋势。由Java开发的游戏可以对图像进行操作,是动态的。而且可以接入网络,既可以开发单机游戏也可以开发网络游戏。随着彩屏手机的普及,游戏可以不再是黑白的,可随心所欲的为游戏中的不同物体赋予不同的颜色。 过去的手机是一个封闭的操作系统,除非用厂商自己的软件和工具,否则无法对手机的菜单进行改动,更无法在手机上附加其他应用。而K-Java技术的应用将摆脱这些传统的束缚,K-Java编写的应用程序可以兼容不同的网络协定,简单说就是,只要网络内容服务提供商提供K-Java服务,用户的K-Java手机就可以拥有无限扩充应用的能力。K-Java服务是一种新的移动数据业务的增值服务,它为用户提供了一个开放的平台,能更好地为用户提供全新图形化、动态化的移动增值服务。用户使用支持K-Java功能的手机终端,接入网络内容服务提供商的K-Java服务平台,可以通过手机随意下载Java应用软件,能方便地享受类似于Internet上的各种服务,如下载游戏、动漫、小说等,也可进行各种在线应用,如联网游戏、收发邮件、证券炒股、信息查询等。 1.2 Java手机游戏的发展现状 在欧美市场,由于较早采用GPRS技术,所以欧洲和美国运营商的K-Java也开展得较早,不过早期的应用并没能在个人消费市场激起太大的波澜。而日韩的无线数据业务从发展之初就将目标锁定在了游戏、娱乐等个人消费方面。K-Java技术能够利用手机有限的硬件条件使得PC上大量的互动性娱乐、游戏应用在手机上,正是凭借着这一技术特点,K-Java迅速成为了手机游戏的主流编程语言。在欧美市场,2002年此项业务的直接收入已经超过了2.45亿美元。 在中国,2003年2月15日,中国移动开始了大范围的K-Java应用测试。4月8日,无线K-Java服务被移动正式定名为“百宝箱”,并全面开始免费试用。而在发展较快的广东地区,更是从5月17日开始了大规模的K-Java业务推广,投入资金多达千万元。7月1日,中国移动宣布了“百宝箱”正式商用的消息,K-Java在中国市场的掘金旅程也将由此开启。但是,K-Java目前在中国的发展速度却不够快,主要的原因是用户群体不足。首先是终端不足。在市场上,能够支持K-Java的手机很少,而且几乎都是几个国外主流品牌,其定位也较高,而国内品牌,介于成本和技术,一般都不含K-Java功能。与此同时,大量已有手机的老用户不会因此功能而重新购置一台新的手机。其次,在拥有K-Java功能的手机用户群体中,懂得或者愿意使用K-Java的人却更少。所以,我们必须期待更多含有K-Java功能的面向各个消费群体的手机上市和普及,以及用户对手机附加功能使用意识的加强。1.3 手机游戏的发展前景由Juniper Research发布的最新调查说明,Java手机游戏在2008年将会获得超过63亿美元得收益。据IDC预计,仅在美国,整个手机无线游戏业务的硬件、软件以及服务所带来的收入在2006年将达到40亿美元,而更别说有着更大手机无线游戏市场潜力的日本、韩国和中国等亚洲市场。预计到2006年,全球的无线游戏市场总值将达170亿美元。研究机构Informa分析说,手机游戏是全球游戏市场中增长最快的部分,其产值将从2002年的2.43亿美元上升至2007年的38亿美元。英国市场研究机构AnalysysLtd在这份研究报告中称,随着彩屏智能手机的广泛应用和手机功能不断升级,游戏市场预期将从2002年的2亿欧元,至2008年时增长到接近30亿欧元。Frost&Sullivan研究公司指出,全球移动游戏业收入2008年将上升至93.4亿美元。Ovum公司则指出,到2006年,全球移动游戏业的价值将是44亿美元。比较保守的In-Stat/MDR研究公司也指出,无线游戏业的营收将以数十亿计,2006年将达到28亿美元。据StrandConsults公司预测,到2005年,预计手机移动游戏和娱乐的营收将会成为移动业务中利润最大的一项服务。来自众多研究公司的结果似乎都在表明:无线游戏将是下一个互联网金矿。如今,从高档写字楼到青青校园,手机无处不在,手机如今已成为都市时尚文化和消费主义的象征。本来手机只是用来通话,后来可以发短信,现在当人们空闲无聊时候,手机用户们将会转向那些提供游戏和娱乐的服务的功能也就显现出来了。随着2.5G和3G的大发展,彩屏手机今年包括今后几个将会逐步取代黑白手机,后几年的时间里,彩屏手机将具有类似GameBoys游戏机的功能。更重要的是随着数据业务的成熟,寄托于移动通信网络与移动终端的无线游戏,使手机游戏由单机游戏迅速的过渡到了类似于电脑上网络游戏的时代。Java将成为无线游戏发展的中坚力量,由Java所开发的手机游戏将占据巨大的市场分额。2 J2ME的概述与相关理论基础2.1 J2ME的简介J2ME 是Sun微系统公司流行Java编程语言的紧凑版本。很多人没有意识到Java作为一种语言刚刚发明的时候是为了用来进行移动设备编程的,于是,它最终以J2ME的形式来实现这个目的。J2ME包括一组开发工具和丰富的应用程序接口(API)以供开发手机应用程序,人们称之为MIDlet。J2ME也包括K虚拟机,它负责协助Java字节码在每个具体手机上的执行。依靠通用的字节码而不是本地应用程序代码,J2ME就能够开发你的游戏的基本代码,并且能够移植到不同的手机而不需要费太大力气。事实上,如果不需要改变屏幕尺寸和图形显示能力,在J2ME手机之间移植一个游戏所需要的工作几乎是零。在美国的手机制造商中,J2ME享受着最广泛的工业支持。在市场上,Motorola,Nakia,Research In Motion(RIM)和Samsung等业界巨头都有功能基于J2ME的手机。