快速业务通道

J2ME游戏开发笔记整编版 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

J2ME游戏开发笔记整编版(7)

时间:2011-01-13

几点开发经验:

1。各机型之间最大的差别就是屏幕大小不同。所以游戏中要能自适应屏幕大小

2。不使用Midp2.0的GameAPI会比较方便移植,只要自己封装切图,旋转等函数即可。NokiaUI API和Midp2。0都支持图片选转。2.0支持的更好。注意Nokia 60不支持创建可变的透明图片,所以要用其他方法代替。

3。NOkia 6600,7610的UI API有问题(图片旋转),所以用了Midp2.0代替

4。支持MIDP2。0的机器程序大致相同,其中MOto,SE,SX都差不多。但也有细微差别。如SE不支持全屏。所以screenSizeChanged方法无效。

5。说说声音播放。NOkia s40上我坚决不用声音,一是容量限制,二是太难听。其他机型都可以支持midi和wav.不过没有发现可以同时播放2个midi的机型,moto v和se都可以同时播放midi和wav,nokia则不行。

3 移植一法

近日观察某些游戏的源代码(反编译后的),发现有个方法挺方便游戏的移植的。定义一个接口(比如 stringTable)将游戏中所用到的静态字符串都定义为接口的常量。然后,让使用到这些字符串的类实现stringTable接口。这样移植的时候只要修改接口里面的字符串就行了。当然,对于游戏中坐标的定位,最好使用getWidth(),getHeight()还有Font类的方法 stringWidth,不要定死了。这样的话,移植工作就比较轻松了。

4 检测机型

在J2ME开发中,往往遇到根据不同机型做不同事情的情况,比如Nokia3650的键盘比较特殊,Nokia7650不支持mmapi,所以需要获得机型信息。

下面是一段简单的代码

public static void checkPlatform() {    String platform = System.getProperty("microedition.platform") ;      String tmp = null ;      if(platform.length()==9)        tmp = platform ;      else if(platform.length()>9){        tmp = platform.substring(0,9) ;      }      if(tmp!=null){      if(tmp.equals("Nokia3650")){        is3650 = true ;      }      else if(tmp.equals("Nokia7650")){        is7650 = true ;      }      } }

获得机型信息还包括版本号等等,所以要截取前面的几个字符比较。

不过得到的机型字符串有时并不保险,如早期的Nokia N-Gage获得得并不是N-Gage,不过3650和7650还是可以的.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号