站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2ME 专题J2ME平台手机游戏移植体会(二)

J2ME平台手机游戏移植体会(二)

摘要: J2ME平台手机游戏移植体会(二)

----------Doja平台手机游戏移植标准J2ME平台方法

Doja平台是日本NttDocomo公司的产品。可以通过访问www.nttdocomo.com来获得更多的资料。这里要介绍的是Doja平台与标准平台的差异。一个标准的Doja手机游戏工程包括几个默认的文件夹。

/bin
/res
/sp
/src

bin文件夹存放的跟标准WTK工程文件中的文件夹是一样的,都是编译好的.jar文件和一个.jam文件。.jam文件类似jad文件。可以用文本文件打开编辑。里面有一些必要的项目。包括jar文件的相对路径.

res文件夹应该是存放资源文件的文件夹.(没具体研究)

sp 文件夹存放着程序中要用的.scr资源文件。这里简单的介绍一下Scratchpad的概念。
Scratchpad类似一块内存。但是具体是什么我上网查了一些资料也没确切的说明,也有说像手机中的硬盘的。但是每个工程中可以包含多个.scr文件存放在sp文件夹中.如果你下载了一个开发i-mode for Doja 的开发工具。里面就有关于Scratchpad编辑的设置。这个Scratchpad 在打包的jar文件中并不存在。好象是从网上下载下来用的。

scr文件夹存放着.java的原文件.

给一个代码片段:

DataInputStream in = Connector.openDataInputStream("scratchpad:///0;pos="+0+",length=12");

所以如果想修改到标准的J2ME平台就要把.scr这个文件搞明白。它这个资源文件基本上都包括所有资源。声音,图片,数据 等等。一般需要用十六进制的编辑软件将一些有用处的数据提出来。 根据在程序中原来的读写操作进行判断。比如"scratchpad:///0;pos="+256+",length=12" 意思在.scr作为流的数据中偏移256个byte。 长度为12个byte的数据块作为DataInputStream流。可以用下面代码段替换:

DataInputStream din = new DataInputStream(getClass().forName("Test").getResourceAsStream("/Test0.scr"));
din.skipBytes(256);

我无法解释的更详细。因为我做这个东西比较少。只能说说大概。

把资源文件搞定后。开始分析程序。 Doja平台的程序跟普通J2ME平台程序的结构基本一样。只是所用的方法都是Doja自己的方法。需要自己写一些方法替换掉。 最常接触的就是画图方法。drawImage(); 这个方法在Doja的API说明中有很多个重载的方法。可以接收很多不同的参数。因为Doja有自己的方法,可以从一幅大图中单独画一幅小图 。只要给定坐标和尺寸就可以。所以Doja的画图都是从一副大图中画一幅小图。Doja的接收按键的方法也不同。它有点类似MIDP2.0的方法。对按键的状态是进行判断的。所以很方便做按下和释放的事件处理。 在程序中都是才用位操作实现的。

我觉得Doja游戏移植的难点不是API的不同。而是内存的处理。因为日本的手机性能大部分都比国内的手机的性能好很多。包括网络连接。所以处理内存是个难题。

还有一点注意的就是在进行图象翻转,缩放,与变色的方法上。如果你要从写这些方法。要考虑处理速度的问题。就算你写的方法是可以实现原功能的,也会在速度差异上出现意想不到的效果。

对于程序的处理,我没有介绍很多。因为程序千变万化。如果你遇到什么难题或者需要实现什么方法。可以联系我。或许我这里有写好的。呵呵^_^

QQ:191971016

msn:k7sem_88@hotmail.com

如果您对我的文章转载,请您标明文章的出处,并保持文章的完整性。谢谢!



↑返回目录
前一篇: [j2me]二级菜单界面演练[二]
后一篇: J2me流媒体技术实现讨论[3]