J2ME游戏开发笔记整编版 - 编程入门网
动冲突的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,通过这个事件可以获得新的宽高。
但要注意,此事件并不是同步的,就是说如果你调用了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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |