摘 要 本设计利用J2ME技术对传统的FC游戏“坦克大战”进行扩展并移植到手机设备上。传统FC上的游戏只是单一的进行人机对战,一旦玩家掌握了这种事先编好的模式或玩完所有游戏路径后,就会失去兴趣,这款游戏也就失去了原有的生命力。为了增加游戏的可玩性,本文在传统小游戏“坦克大战”的基础上对其内容进行了扩展,加入了一些新的功能和新的玩法,如玩家所控制的坦克加入等级和技能参数等。
关键字 J2ME;手机游戏;坦克大战
中国手机发展历程大致可以分为模拟手机时代、GSM时代、2.5G时代和3G时代。模拟手机时代,大概从1987年中国移动通信集团公司开始运营900MHz模拟移动电话业务算起,到2001年6月30日中国移动通信集团公司完全停止模拟移动电话网客户的国际、国内漫游业务截止。中国的GSM数字网大概可以从1994年在中国建成第一个GSM通信网络开始,2001年的模拟网转网,GSM数字网才全面替代以往的模拟和GSM两网并存的格局。现在在我国广泛使用的GSM技术采用窄带的TDMA,允许在一个射频(即“蜂窝”)同时进行8组通话。手机从模拟时代走进GSM时代时,各大品牌的手机就迅速发展起来,造成竞争激烈,使手机的发展越来越快。2.5G时代和3G时代也相继出现,现在也逐渐跳进了CDMA时代,这种制式是中国发明的,这代表着我国的科学技术已经有了很大的进步。手机技术的迅速发展,也让基于Symbian、Linux、Windows mobile等各种手机操作系统的手机纷纷上市,手机游戏也因此得到迅速发展。
为了满足消费者和嵌入式商场不断发展和多样化的需求,J2ME体系结构采用模块化、可扩展的设计。这种设计是通过一个3层软件模型来实现的,该模型构建于本地操作系统之上。J2ME的3层体系结构依照各种设备的资源特性,将J2ME技术架构分为简表、配置和Java虚拟机3层,然后再进一步细分,这使J2ME能够在每一类设备的限制下工作,同时提供最低限度的Java语言功能,如图1。
2.Eclipse的特性
Eclipse平台是一个开放的可扩展的IDE,Eclipse平台允许工具建造者独立开发与其他工具无缝集成的工具,可以通过不断地加载插件来实现同其他制品的合作。
3.开发环境
(1)操作系统:Microsoft Windows XP
(2)程序语言:Java
(3)开发包:Java™ 2 Standard Edition(5.0)
Motorola Java™ ME SDK v6.2 for Linux Products - Emulator M.3
EclipseME 1.6.6
(4)IDE: Eclipse 3.2
1.功能
本游戏采用PC上休闲竞技类游戏的性质,进入游戏后,玩家如果在自己的堡垒被敌方坦克攻克之前攻克敌方堡垒就算胜利。当然,堡垒不是一下子就可以攻破,这就需要玩家提升自己坦克的等级以提升坦克的攻击等属性,进而能在较短的时间里攻克敌方堡垒。游戏中还会随机出现一些小坦克,玩家可以通过攻击这些小坦克累积经验,当经验达到升级所需经验时坦克的等级就会得到提升,等级升到5级时就不能继续升级了,这时已有足够的实力去攻打对方的堡垒并获得战斗的胜利,游戏流程图如图2。
2.性能
游戏程序是一项精度要求很高的应用程序,它的场景变换速度以毫秒计,因此,对玩家所发出的每一项控制指令都要能立即在游戏里得到实现,因为对于一款实时作战的游戏来说,能够打到对方的时间只有一瞬间,如果玩家发出指令后不能立即实现,就会因为游戏设计的缺陷而让玩家错失好多次战胜的机会,从而令玩家失去对本游戏的兴趣。
为了让玩家在游戏过程中感觉到坦克移动的连贯性,设计的时候要求从缓冲区绘制到屏幕的时间不得超过20毫秒,也就是游戏程序以每秒50帧的速率绘制到屏幕。
由于手机内存有限,对游戏中使用的图片尽可能的优化,通常采用16X16像素,并且把多张图片合成一张,可以有效的去除图片文件头地浪费。
用户在游戏中若有电话或短信等级需要用户立即作出回应的事件发生时,游戏能够自动停止并切换到待机模式。当用户完成所需处理的事件后,又可以回到游戏继续游戏;用户在游戏过程中不得出现死机等现象。
1.系统的组成
本系统主要有TankWar.java、TankGameCanvas.java、E_TankSprite.java、TankBullet.java、ExplosionSprite.java、WallSprite.java六个类。TankWar.java继承MIDlet类,是整个程序的入口。TankGameCanvas.java继承了GameCanvas类,并实现了Runnable接口,游戏里的大部分功能都在这个类里实现并绘制到屏幕。E_TankSprite.java类继承了Sprite类,主要实现敌方坦克的初始化以及定义子弹数组这个成员变量。TankBullet.java类也继承Sprite类并实现Runnable接口,该类主要实现了子弹的发射以及运行。ExplosionSprite.java类主要实现了Sprite类对象的爆炸图片显示。WallSprite.java类主要是在画布里为双方的堡垒添加一道围墙,系统类图见图3。
|