Java手机游戏开发简明教程 (SunJava开发者认证程序员 郎锐)2008-05-29 12:25
Java手机游戏开发实例简明教程
(SunJava开发者认证程序员 郎锐)
一、手机游戏编写基础
1.手机游戏设计的基本原则
目前,市面上的手机无论在处理能力还是在存储容量上都不足与PC机相提并论,但也足以支持一个设计优化的微型游戏程序的运行。加上它的网络通信能力,甚至还可以支持有联机对战能力的网络游戏。正是由于硬件设备的极大差异,才直接导致了手机游戏开发与传统游戏开发的极大差别。
鉴于手机游戏与传统游戏开发的巨大差别,并考虑到作为其运行载体的手机的实际局限性,在进行手机游戏的设计时也有必须遵循的原则,即有限的游戏时间;缩短等待时间;精干的程序;寻求最大的兼容性。
手机作为一种典型的MIDP设备,其能量供应是有限度的,在设计游戏时应当为用户提供一个有限的游戏时间,以免游戏时间过长而大量消耗有限的能源。例如,可以把游戏时间限定在几分种之内完成或是将其划分为若干阶段分次进行。
鉴于手机游戏的处理速度不可能太快的客观事实,为保持游戏的顺畅进行,就必须尽量缩短游戏中的等待时间,尤其是在设计多人联机游戏时一定要注意这个问题。而且由于存储空间的限制,也要求设计精干的程序,否则将导致开发的游戏因过于臃肿而无法在手机执行。
为手机游戏寻求最大的兼容性也是有必要的。由于不同型号,不同款式的手机不仅支持的J2ME SDK(Java 2 Micro Edition SDK)不同,屏幕尺寸及按键等也都存在差异。一款好的游戏如果因为底层的不兼容而局限于某一款机型显然是一种浪费,其实游戏的剧本、流程设计等完全不用更改,只需针对其他系列的手机更换必要的低层处理就可以把游戏的市场拓展到其他机型。
2.手机游戏的实现技术
虽然J2ME对手机游戏的开发已经成为主流,但并不是说只有J2ME能够开发手机游戏,除此之外还有嵌入式和短信息等其他几种手机游戏实现技术:
嵌入式游戏是指在手机出厂时就已经固化在芯片中的游戏。早期手机提供的游戏大多是这一类游戏。由于这种技术不允许用户自由更新游戏,所以这类游戏很快便被淘汰了。
短信息游戏是基于手机短信息服务(SMS)的手机游戏,通过向游戏服务商的服务器发送简短的文字信息来获取从游戏服务器反馈的结果信息。由于这种游戏是纯文本交互形式,因此通常较乏味且输入烦琐,游戏成本较高(通常1条短信0.1元)。
随着Java技术的发展和Java手机的推广应用,使手机游戏进入J2ME时代。这种简化版本的Java极大地提高了手机对游戏的支持能力,它拥有比嵌入式和短信息手机游戏更为完美的界面,而且允许使用子图形动画。J2ME手机程序已经成为目前最佳的移动游戏开发环境,本文也正是围绕着J2ME技术展开对手机游戏开发过程的介绍。
3.《赛车》游戏的剧本设计
本文将向大家介绍一款赛车游戏的制作过程。这是一款典型的体育竞技类游戏,它以公路作为赛车场地,选手为一辆赛车,障碍物为在公路放置的炸弹。由于只安排了一辆赛车,所以制定的游戏规则不以速度取胜,而是按玩家规避障碍物的灵巧程度来积分。这可用玩家安全驾车的时长来度量,因为玩家玩得越熟练,其规避障碍物的手法也就更灵巧,安全驾驶的时间也就越长。
由于手机屏幕狭小,表现能力有限,而且在手机上也没有提供任何软硬件图像处理加速,所以在手机游戏中不可能追求PC机的表现效果。在追求视觉效果的同时,应尽量做到简单。
本游戏实例采用的是二维图形表现形式,以笔直无转弯的公路作为赛道。玩家将可以通过手机方向键控制赛车的左右移动,以规避随机布置在赛道上的炸弹,炸弹在随机布置后将不再移动。如果赛车的任意部分与炸弹相接触即被判定为触弹爆炸,本局游戏结束。
二、配置Eclipse开发环境
在使用任何一种语言进行编程时都离不开开发环境,Java语言也不例外,这里将向大家介绍一种非常著名的开发环境——Eclipse。
1.Eclipse基础
(1)认识Eclipse
Eclipse是一个开放源代码的、与NetBeans、Sun ONE Studio和Borland Jbuilder类似的一种基于Java的整合型可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(JDT)。其未来的目标不仅仅是成为专门开发Java程序的IDE环境,根据Eclipse的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。
难能可贵的是,Eclipse是一个开放源代码的项目,任何人都可以下载Eclipse的源代码,并且在此基础上开发自己的功能插件。也就是说未来只要有人需要,就会有建立在Eclipse之上的COBOL、Perl、Python等语言的开发插件出现。同时可以通过开发新的插件扩展现有插件的功能,例如,为了进行手机应用程序的开发,本文所涉及到的《赛车》游戏就是通过J2ME插件的扩展来加以实现的。
(2)Eclipse的组织结构
Eclipse是一个开放源代码的软件开发项目,它专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目等组成,具体包括Eclipse Platform、JDT、CDT和PDE等4个部分。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。
Eclipse SDK(软件开发者包)是Eclipse Platform、JDT和PDE所生产的组件合并,提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse项目生产的工具和来自其他开放源代码的第三方软件组合而成。Eclipse项目生产的软件以CPL发布,第三方组件有各自自身的许可协议。
2.Eclipse的下载与安装
通过前面的介绍,我们了解到Eclipse是一款非常出色和著名的开源项目。你只需登陆Eclipse官方网站(www.eclipse.org)就可以免费获得这款优秀的开发环境。
进入主页后单击“Downloads”链接,将出现镜像列表页面,从中选择较近的镜像点并进入下载页面,目前最新版本为3.0.1)。一般情况下,Eclipse同时提供了Release、Stable Build、Integration Build和Nightly Build等多个下载版本,建议下载Release或Stable版本。这里选择Release版本。
进入该版本的下载页面,单击“eclipse-SDK-3.0.1-win32.zip”链接进行安装包下载(针对Windows平台)。同时,单击“eclipse3.0.1-SDK-win-LanguagePackFeature.zip”链接下载对应的多国语言包插件以实现软件的本地化。
安装Eclipse的步骤非常简单:你只需将下载的安装压缩包按原路径直接解压即可。之后将多国语言包解压缩,并将解压得到的“plugins”和“features”文件夹去覆盖解压到Eclipse安装目录下“eclipse”文件夹下的同名文件夹即可。如果当前操作系统的JRE环境安装正确无误,运行Eclipse.exe将进入其默认界面。
注意:这里的前提是JRE环境的安装正确无误,由于Eclipse本身是用Java语言编写的,而下载的安装压缩包中并不包含Java运行环境,因此需要用户自己另行安装JRE,并且需要在操作系统的环境变量中指明JRE中bin的路径。如果上述设置不正确,Eclipse将无法正常运行。另外,由于Eclipse版本升级较快,如果有更新版本,需先删除旧版本重新安装,而不能直接解压到原来的路径覆盖旧版本。
3.一些必要的配置
(1)配置JRE
为了保证Eclipse的正常运行,我们需要配置JRE。你可以安装Sun的JDK或IBM的JDK,推荐使用1.4以上版本。因为只有使用1.4以上版本的JDK才可以享受到新增的HotSwap功能对于调试带来的方便。这里,我们使用Sun公司的1.5.0版本JDK,你可以从Sun公司官方网站http://java.sun.com免费下载。
(2)安装J2ME SDK
为能够保证手机应用程序的开发,你还必须安装J2ME SDK。Sun公司的J2ME Wireless Toolkit(WTK)便是常用的一款J2ME SDK,它提供了运行J2ME应用程序所需要的库以及模拟器等,通过它可以进行程序的编译、校验、运行。有关WTK的信息可查询http://java.sun.com/products/j2mewtoolkit。
目前,J2ME Wireless Toolkit共分3个版本:1.0.4、2.0和2.1。其中,1.0.4版只能开发MIDP 1.0程序,2.0版可以开发MIDP 2.0应用程序,2.1版则可以同时开发MIDP 1.0、JTWI、自定义等3种环境。需要注意的是,并非版本越高越好,必须视需求不同而选择适当的版本,才能开发出可以在真机上运行的MIDP应用程序。这里选用的是WTK 2.1,你可从Sun公司官方网站免费下载,按默认方式安装该工具包并记下其安装路径以便以后在安装EclipseMe插件时使用。
这里之所以选用Sun公司的J2ME Wireless Toolkit产品,是因为这样开发出来的手机软件可以具有更大的通用性。如果你只是出于为自己的爱机DIY应用软件的目的,则完全可以根据自己使用手机的型号从相应厂商网站下载与之对应的J2ME SDK,这样开发出来的手机软件能够以更优的方式在真机运行。目前一些大的手机厂商开发的特定J2ME SDK主要有:Nokia的Nokia DEveloper's Suite与Nokia各款手机专属SDK;SonyEricsson的SonyEricsson J2ME SDK;Siemens的Siemens Mobility Toolkits等。
4.J2ME插件EclipseMe的安装
通过上面的介绍,你现在应当理解:对手机程序的开发实际也就是等于对J2ME项目的开发。虽然上面我们对环境进行了配置,使其能够支持J2ME开发,而且Ecilpse使用起来非常方便,但这对J2ME开发的支持还是远远不够。下面,我们将通过为Eclipse安装一个开发J2ME程序的插件EclipseMe来完善手机应用程序开发的最后一项准备工作。
目前,EclipseMe的最新版本为0.5.5(eclipseme.feature_0.5.5_site.zip),你可以登陆SourceForge网站http://eclipseme.sourceforge.net/免费下载。
�