基于J2ME技术的移动游戏开发平台

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华南理工大学
硕士学位论文
基于J2ME技术的移动游戏开发平台
姓名:***
申请学位级别:硕士
专业:计算机应用
指导教师:***
20050501
第二章.J2.Ug平台分析
低配置设备高配置设备
2.1,2配置概述
配置将运行时环境定义为一组核心类和一个运行在特定类型设备上的特定JVM。

虽然还可能在将来定义其他的配置,但当rillJ2.\_iE存在两种配置,CLDC和CDC。

连接限制设备配胃(CLDC):与虚拟机KVM一起,用十内存有限ff勺【6位或32位殴备。

这是用于开发小型J2ME应用程序的配置(虚拟机)。

从游戏程序员的角度看,它的大小限制让它比CDC更具挑战性。

CLDC同时还是用于开发绘图工具应JE{=j程序的配置。

目前许多支持1J2,h1E技术的手机便是个运j亍小应用程序的小型无线设备的示例川。

连接设备配置(CDO:与虚拟机CV;I一起使用,用于要求内存超过2兆的32位体系结构。

互联网电视机顶盒和某些PDA便是这类设备的一个示例I71,目前,己上市的手机跨越CLDC和cDC两个配置舰范,有些智能手机的硬件配置甚至超越了CDC规范。

第一二章12ME平台分析
的移动设备从手机到PDA,而这些移动设备的硬件差异也比较的大。

要作为可移植的移动游戏开发平台,J2ME存在许多不足之处。

2.2J2ME平台缺陷
从上面论述可以看出,处理芯片、显示尺寸等硬件因素造成了手机设备具自‘较大的差异性。

显示尺寸的不同将使应用程序无法通用在不同设备中,比如说某些功能菜单显示1i了.某些功能按钮显示不了等等。

囚此,这一差异性使得丌发人员不得不针对具体的各种手持设备进行开发,在一种设备中调试通过的程序,还要在另外一种设备中进行调试。

如果希望应用程序具备更好的通用性,那么自然要研究更多的手机,这样就造成了开发成本的提高[81。

无论是移动游戏电好,普通的J2ME应用程序MIDLet也好,它可能运行在KVMtCLBC配置)上,或CVM(CDC配置)上,而这两个平台对程序丌发有不
毕南理工大学硕士学位论文
同的要求。

也就是说,程序设计者必须知道具体J2ME平台,才对症下方,进行针对性开发。

Sun公司的首席工程师RobGingeH也承认“编写一次即可运行在所有设备中”中的“所有”还无法实现[81。

这种状况同样地对移动游戏的设计和开发造成混乱。

如果要使游戏能适应所有的手机硬件平台,最直接的做法就是分别为CLDC和CDC进行设计和开发。

在这种设计思路下,各层次技术关系如下
因此,J2ME技术目前存在的管理缺陷,使得实现一个游戏策划,必须进行重复性设计、开发和调试,存加长扦发剧朗,降低效率的同时,容易造成错误和不一致。

2.3缺陷改进
本文通过设计统一的图形图像处理框架和移动游戏引擎,来改进这种缺陷。

在这种设计思路下,一个策划好的游戏只需丌发一次,如下图所示
第二章J2ME平台分忻
23.1多媒体处理框架
框架屏蔽了不同规格手机硬件之间的图像显示、声音播放等差异,j=}:提供了’基本图元等处理接口。

进行移动游戏的开发时,只需进行基本的配置,就可适应/fj同类型地手机。

万配置的参数超过目标手机的处理能力,针对不同情况有三种处理方法l、降低配置参数,继续运行。

例如配置参数规定的游戏画面质量过高,程序将降低图片的分辨率和色深。

2、屏蔽掉参数,继续运行。

这种情况卜.,某些较高级的处理函数或接口将被屏蔽掉。

例如声音文件的播放。

3、中断运行,并指明原因。

例如,目标手机的J2ME平台不支持3D接口开发时若使用了相关的处理函数,程序运行期间将抛出异常,终止并指明原冈。

第-辛多媒体处理框架没计
列,以合成不同的场景。

下面将介绍如何用图像处理技术,实现这种一张图片生成多个复杂场景的方法【…J。

1.图像分解、压缩
预先设计游戏中可能出现的物体,将它们做成一张张小图片。

如图I,它包括草地、街道、房屋、湖泊,我们称之为图元,将这些图元进行适当排列,紧凑成一张较大图片,如图2,我们称之为图元集,它是程序生成复杂场景时的图元来源。

图l图元图2图元集图2所示的图元集编码为png图片后,大小约为4K。

文章最后介绍的示例游戏将用这张prig图片合成九个不同的场景。

这九个场景若预先生成,所需的I:)ng图片共需:36.4K。

也就是慌,上述方法减少了32K的程序存储开销.为Jar包允许最犬容量的一半。

2.图像提取、合成
我们将将长为M宽为N的图像G表示为
吖一IⅣ一l
∑∑f(x,y)
G(M,N)一』20∥20(3.1)F面讨论如何从图元集G中快速地提取图元,并合成不同的复杂场景。

2.1.从图元集中提取所需的图元
给定坐标范围(左上角坐标和右下角坐标)可以从图元集中分割出待处理
华南理工人学硕士学位论文的图元。

假设图元集左上角为坐标原点,坐标x轴向右,Y轴向下。

所要提取的图元Gi左上角坐标为(xO,yO),右下角坐标为(x1,y1),那么(3.2)J2ME的MIDPL.0不提供从png图片中直接提取某区域图元的API,所以我们必须自己实现这个操作。

介绍一种基于数组复制的方法:首先将图元集的Image对象导出成字节数组,直接复制所需象素区域值至图元字节数组,再由图元字节数组生成Image对象。

需注意的是,字节数组为png文件的l6进制编码字节流,需严格按照png格式进行象素值复制…1。

MIDP2。

0提供的Tiledl.ayeF对象可直接提取Image的某一区域,并用其填充自身。

因为硬件的支持,这一提取合成操作效率非常高Ⅲ】。

2.2.用基本图元合成复杂场景:游戏程序可以利用提取出来的图元,合成情节所需的游戏场景。

假设构成场景图片的基本图元有P个,第i个图元的长为Mi,宽为Ni,合成的场景图片长为Ⅵ,宽为N,那么,上述这种合成操作可表示为∑Gi..∑∑f(x,y)‘—o~‘—J‘J…G(M,N)=cI。

其中Ⅲ一x20Y20(3,3)PP■Mi■Ni而目.有-;~,智:Ni=l;VI而且有=,d=在MIDP1.0里可用数组的复制实现图儿合成,而M【DP2.0巾TiledLayer对象本身是一个图元表格,它的f¨lce【【S方法可往表格直接填充图元,快速地合成图片。

图3是用图l所示的图元合成的4个游戏场景。

少石,川∑删d∑刚=G/jjb 比赛
第二章多媒体处理框架殴计
图3用图元合成的4个场景
3.2.2用图像处理技术实现动画效果
特殊的画面效果可以烘托特定的游戏情节,例如淡入淡出,当GameOver时,可以让终结画面逐渐变成灰度图,以衬托玩家沮丧心情:当场景切换时可以让画面先模糊后清晰,让玩家慢慢适应新场景的变化;而目标物旋转、移动等动作效果更是游戏需大量使用的。

卜面将介绍在手机这样的受限平台上,如何产生这些效果。

【.淡入淡出
淡入淡出是指灰度图淡入到彩色图与彩色图淡出到灰度图。

单击windowxp关机按钮时,画面呈现的就是这种效果。

淡入淡出在手机程序上也能得以实现,摹本思路还是灰度图和彩色图之间的转换。

在』2sE中,最直接的做法是利用Image对象的NetPixelS方法,在一定步长内修改每个象素彩色值为灰度值,或将灰度值恢复为原先的彩色值[121。

由于MIDP只支持png图片,而手机LCD同时显示的颜色数很少,故处理方法ll:J’简化为调色板的修改。

方便讨论起见,我们要处理的png图像为不超过256色的索日I彩色图像(indexed—CO【Orimage)。

该png图片含有一个调色板数据块(PI。

TE),结构如表1,当图像色深为N时,PLTE表项数日为2“。

17
华南理工人学硕士学位论文
使用P1ayer对象的Start方法,可以将声音播放出来,
在播放卢音时也可以设定声音播放的次数,可以使用Player类中的setLoopCount方法柬实现。

3.4多媒体处理框架
利用J2ME提供的多媒体处理API,构建一个稳定、可扩展的框架,浚框架是移动游戏引擎的资源基础。

下图是M【DPAPI、多媒体处理框架、移动游戏引擎和游戏之间的层次调用关系。

34.1数据结构
在处理框架中,选择图元文件作为图像的基本数据单位,选择wav文件作为声音的基本数据单位。

作为图元的数据结构,uJ‘以是Image对象,也可以是字节数组。

在框架接口中,统一采用字节数组作为参数。

使用字节数据作为框架基础数据结构有如下优势:
1)MIDP的屏显APl支持图像数组的直接显示。

相关文档
最新文档