快速业务通道

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

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

在Nokia3100等机型中,提供了一个游戏目录管理游戏类应用。该目录

可以设置目录中的游戏运行时是否发声,振动和使用网络。对于

Nokia3100(V3.10)如果将振动设置关掉,而在应用程序中使用了振动,则

会产生一个异常。此bug是在10个月之前发现的,记不清是哪个异常了。

此bug对于其它版本的3100或者其他机型是否存在尚不得知。

解决方法:在应用程序中使用振动的地方增加异常处理。

7 Motorola手机J2ME应用问题

(1) 应用程序图标

必须在jad 文件Midlet-Icon属性中指定图标文件,Midlet-1中指定的图标无效

Moto V系列图标大小应为15*15,其他尺寸无法显示。

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

时间:2011-01-13

(2) 左右软键问题

Motorola手机操作系统设定是:右软键确认,左软键取消。所以,我们的程序应该和这个习惯保持一致。

(3) Key Code

Moto V的key code不同于其他Midp2.0机器

左软键:21

右软键: 22

中键: 20

up: 1

down: 6

left: 2

right: 5

(2005.12.31注:在遇到新机型时,先测试一下keyCode比较好)

8 MIDP2.0 Canvas全屏问题

MIDP2.0 Canvas可以调用setFullScreenMode(true)将Canvas设置成全屏,但设置成全屏后新的Canvas width & height的获得对于不同手机却并不一样。

(1) MotoV系列

调用setFullScreenMode(true)后,将触发sizeChanged事件,此事件从系统接受两个参数,即为Canvas全屏后的width & height,通过这个事件可以获得新的宽高。

protected void sizeChanged(int w, int h)    {      width = w ;      height = h ;    }

但要注意,此事件并不是同步的,就是说如果你调用了setFullScreenMode(true)之后,立即使用新的width,height,有可能获得错误的结果。

(2) SE K700

调用setFullScreenMode(true)后,不会触发 sizeChanged,而是通过getWidth和getHeight获得新的宽高。SE的setFullScreenMode调用后是立即返回的,所以可以获得正确的width & height

对于其他机型暂时还不了解

----------------移植问题-------------------

1 键盘响应

不同的机型对于键盘事件的响应不一样。经过我的测试,Nokia 7210,3100一次只能接受一个按键信息。(我写了个测试程序,发现如果一个键被按下后没有松开,则KeyPressed事件不会再产生,即其他键的按下操作无效)所以,用缓冲处理控制精灵运动时,如果规定只能四方向运动。如果up已按下,再按下left,精灵的运动方向并不会改变。不过将按键缓冲。按下up,按下left不释放,松开up---精灵就会向左运动。(在松开up后产生了left的KeyPressed事件!奇怪吗?松开up后我并没有进行"按下"left这个动作--left键在up松开前就被按下了且没有松开。似乎机器一直在监测键盘上各键的状态,并且有一个等待队列。)

在wtk的标准模拟器上就不同了。它可以接受多个按键“同时”按下的事件。所以如果用四个并列的if处理,精灵是可以斜着运动的。如果用if else处理,则如果已经按下一个方向键,然后再按下另一个,是否能改变方向受到if else 语句中顺序的影响。即,如果是 if(up) else if(left),则会先检查up键,所以如果已经按下了left,再按up是可以向上运动的,反过来就不行了。(这个自然:)

其它的机型由于手头没有机器,我也没试过。应该也是如此吧。

2 多机型移植经验谈

开发的时候平台是Nokia 40,然后移植到Nokia 60, Moto V, SE等,总结一下大概需要几个版本。

1。 Nokia 40版, 使用Midp1.0+Nokia UI API

2。 Nokia 60版, 使用Midp1.0+NOkia UI API

3. Nokia Midp2.0版,如6600,7610,使用Midp2.0

4。Moto V版,使用Midp2.0

5。 SE版,使用Midp2.0

6. 三星s100,s200,c100,使用Midp2.0

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号