J2ME的手机游戏开发实例与发展分析

(整期优先)网络出版时间:2023-04-15
/ 2

J2ME的手机游戏开发实例与发展分析

夏雷

江苏省盐城技师学院   224000

摘要:随着java技术的不断更新,j2me技术在手机游戏的应用逐渐成为游戏市场的新亮点。本文介绍了j2me技术的原理和架构,之后通过实例分析了j2me在手机游戏中的应用,最后分析了j2me手机游戏的开发意义。

关键词:j2me;midp;软件应用;软件开发

    随着java语言的不断发展,已经逐渐成长为一种尖端的程序设计语言。这个最初用来编写与硬件不相关的嵌入式系统的编程语言,现在更是做到了与厂商不相关、与硬件不相关的服务器端技术,在软件开发应用中展示出了强大的生命力和发展前景。j2me技术正是基于java技术规范的,高度优化的java运行环境,在消费电子领域占据着强有力的位置,尤其是手机游戏的开发上,更是发挥的淋漓尽致。当前j2me技术最流行的应用就是在制作手机游戏方面,java手机的出现更为这种技术的发挥提供了宽阔的平台。

1 j2me技术及其架构

    java2 micro edition (j2me)是java2技术微型版,与j2se、j2ee同样具有美国sun微系统公司提出的java技术规范,主要针对消费电子市场,为机顶盒、移动电话和pda之类嵌入式消费电子设备提供的java语言平台。j2me的运行环境与目标更加多样化,而每一个产品的用途却变得更加单一,资源限制也更为严格,其构成主要是由概要描述、配置、java虚拟机和操作系统等部分组成的标准架构之上的。这种架构下模块化设计很好的适应了小型计算设备的应用限制,通过j2me架构甚至可以替代小型计算设备的操作系统。j2me的架构分为configuration、profile和optional packages,它们的组合取舍形成了具体的运行环境。第一层configuration的作用是与原计算机设备所带有的系统进行互换,它里面还存在着一个配置层,负责处理profile和jvm之间的交互;第二层的profile层,主要是设备的应用程序编程用的接口集合,它对设备横向分类,针对特定领域细分市场,内容主要包括特定用途的类库和api;第三层的optional packages是独立于前面两者提供附加的、模块化的和更为多样化的功能,比如多媒体应用、蓝牙等。SUN公司为J2ME的使用者提供了一套封装得很好的API接口,它方便而且丰富。但是,由于这套API并不是完全是针对手机游戏开发而设计的,因此对于游戏开发来说,有些地方它并不完美。而且从我们做游戏开发的经验来看,一个小型的手机游戏中有很多地方代码结构是相同的,比如开始动画、游戏菜单等。于是,开发一套可以为我们编写代码框架的J2ME手机游戏开发引擎对于提高游戏的开发速度是很有帮助的。

期望通过这套引擎,让用户可以通过配置一些参数就可以完成开始动画、游戏菜单的自动生成等工作,同时辅助一些像重力系统这样的游戏环境搭建功能,使代码可以重复使用,并让开发人员把更多的精力和时间放到游戏算法和逻辑的设计开发上。这样,一个简单的小游戏,便可以在一周左右的时间内完成,并投入使用。

最终,利用本引擎可以更快更好地开发J2ME手机游戏,同时也根据新的游戏需要,为本引擎添加新的功能,使本引擎在辅助开发的同时自身也不断优化丰富。
2 手机游戏设计的需求分析
    当前已经标准化的profile层有mobile information device profile(midp),它由用户网络连接、永久存储和用户界面的java api组成,在游戏设计中专门负责为互联受限设备配置设计的。首先,midp为移动设备提供了游戏api,并具有了用户界面、信息存储和网络功能,它里面的成员类有以下几个:game canvas、layer、layer manager、sprite、tiled layer。在“pocket boxing”这款一款格斗游戏中涉及额主要一些类构成有pocket boxing、boxer、enemy、gamecanvas,其中pocket boxing类继承了midlet类,用来进行midlet的live cycle控制;boxer存储了玩家的拳击手的信息,进行拳击手的描绘;enemy存储电脑控制的拳击手的信息,进行拳击手的描绘,它继承了boxer类;gamecanvas继承了canvas类,进行画面的描绘与操作,各类都是用与类名称相同的文件名来存储的;sprite类可以使许多帧连续的运动,可以使一个定制的序列以任何方式被放置,另外还可以提供转化于检测方法。这样一个引擎的开发需要具有创新性,即可以想到利于用户使用的功能和操作方式,同时方便产生J2ME应用程序的代码。这样开发出来的产品既方便我们使用,同时也更具有销售市场。

由于这个项目比较大,因此开发人员需要具有一些项目的开发经验和软件工程的基本知识,同时对于文档的编写也要认真详细。项目负责人应该有管理项目的经验,可以合理把握项目进度,预测隐藏的危机和风险。

团队合作对于一个项目组来说也很重要,组员应当具有团队合作的意识、互相交流的能力。
3 基于j2me的手机游戏开发制作
    j2me现在最流行的就是制作手机游戏,况且现在无线游戏编程现在又是一个很热门的话题,不但因为它具有极强的趣味性,更重要的是它给我们带来了无限的商机。随着java手机的诞生,手机游戏编程的灵活性与轻便性使得java手机游戏成为游戏市场的又一亮点。
3.1 格斗类手机游戏实例
    手机游戏有很多种类,其中格斗类游戏凭借着它的趣味性和娱乐性深受人们的青睐。 pocket boxing就是一款格斗游戏,玩家所控制的拳击手将出现在屏幕的左侧,电脑所控制的拳击手则出现在屏幕的右侧。拳击手可以进行上下两种的攻击方式,以及上下阻挡防守与后退防守的防卫,游戏中一共有五个回合,在全部的回合中取得胜利的话就是冠军了,在中途如果被打败,就算是游戏结束了。这款手机游戏是一个简单的midp应用程序,在这里进行开发有它需要的开发环境。midplet的开发环境需要有java2 sdk1.3版以上与midp的类库、以及后述的运行前验证工具三种。在j2mewtk中除了包括midp的类库、运行前验证工具之外,还会把编译与包装(jar文件化)、jad文件的创建、模拟器的启动等在开发midp需要用到的操作加以集成。当完成了jdk1.4以及j2mewtk的安装以后,就可以开始对游戏项目进行创建了。
3.2 设计存在的难点
    j2me是获得美国大部分移动运营商支持的移动应用开发平台,j2me是一个解释语言,运行在有虚拟机的任何操作系统上,通常运行速度很慢,而且在优化代码上有许多的困难。
例如,brew 1.0支持掩盖的位图传送(masked-blit),而j2me midp 1.4不支持,而且,一些j2me手机不支持声音,所以你的代码不应该使用掩盖的位图传送支持或者声音支持。
3.3 解决方案
    基于设计中的难点,在手机开发过程中就要有针对性的提出解决方案。在操作系统不兼容性的问题上我们可以在别的开发环境中使用面向对象的语言,这样就很能支持j2me,因为它是一种面向对象的语言。在j2me和其他开发环境中,任何使用java写的代码都可以使用c++编写,并且可以更快更好。把所有的设备输出代码(声音、显示、输入)从游戏程序逻辑中分离出来。结构化游戏程序逻辑以便能够在j2me和其他环境之间移植。
4 j2me手机游戏的发展展望
    当前已经有上千万的java手机到了消费者手中,并极大地提高了移动电话支持游戏的能力。j2me是一种针对移动电话和pda这样的小型设备的java语言,它比sms或wap能更好地控制界面,允许使用图形动画,可以通过无线网络连接到远程服务器。j2me为在小型电子设备上创建性能卓越的网络应用提供了一套完整的解决方案。它也使设备制造商、服务提供商及应用开发人员为他们的用户发布新的软件应用成为可能。j2me的出现使这些厂商有了共同遵循的技术规范,而这样做也完全符合java一处编译,到处运行的基本方针,因为现在市场对软件跨平台的兼容性和安全性的要求变得日益强烈。而j2me却能很好地解决软件跨平台得兼容性与安全性的问题。j2me不是手机上配置的惟一的解释语言,但是它是一个许多厂商新支持的行业标准。也正是java将手机游戏的趣味性大大提高,并且向传统的电子游戏靠拢,让手机游戏的吸引力增强,特别是手机随身携带的特点,也让其成为用户身边触手可及的掌中游戏,而不一定要拥有电脑这样的平台才能进行游戏。