J2ME Game开发笔记(第三辑).
J2ME Game开发笔记(第三辑).
2011年07月24日
文章起源:J2ME开发网
Nokia系统bug两则
1 Nokia7650(V4.46)利用过程目录揭示bug
利用过程安装后,敞开利用过程目录,揭示讹谬提醒:
"过程已关闭 MidpUi USER9",利用过程目录无法进去。
分析后觉察,本来是新安装的利用过程未曾在mainfest.mf中的
midlet-1属性中指定利用过程图标,导致过程目录无法揭示图标。
在我所见到NokiaS40机器上和NGageQD上,万一图标没指定或指定了但
不存在,将揭示默认的图标。
此bug对于其它版本的7650可能其他机型是否存在尚不得知。
处理措施:利用seleQ将7650c:/system/midp中刚安装的过程目录剔除,即可正常进去利用过程目录。
在利用中利用自己的利用过程图标,并准确设置,以避免让用户蒙受到此bug。
2 Nokia3100(v3.10)游戏目录振动设置与利用过程中利用振动抵触的bug
在Nokia3100等机型中,供给了一个游戏目录管教游戏类利用。该目录
能够设置目录中的游戏运行时是否发声,振动和利用网络。对于
Nokia3100(V3.10)万一将振动设置关掉,而在利用过程中利用了振动,则
会发生一个失常。此bug是在10个月之前觉察的,记不清是哪个失常了。
此bug对于其它版本的3100可能其他机型是否存在尚不得知。
处理措施:在利用过程中利用振动的地方添置失常处理。
----------------------------------同时多处失常
过程揭示exception时,在一个外包函数处捉拿到了,揭示为函数a揭示失常,然后去a中捉拿却没捉拿获胜,然而依旧发生了失常.
本来是外包函数中调用的另一个函数b也发生了同样的失常.
同时多处失常-当心!
----------------------------------Eclipse Tips 1.在工具条上有个文本形象的按钮"show source of selected element only".当编辑类的某个成员(措施或域)时,按下这个按钮,则目前窗口会只揭示你正在编辑的类成员.再按一下则还原.
2.揭示java文件行号.菜单入抉择Window->Preferences敞开Preferences窗口后抉择Java->Editor,在右边的选项入选中Show line numbers.
揭示非java文件行号.在Preferences窗口入抉择Workbench->Editors->Text Editor,同样右边的选项入选中Show line numbers.
3.编辑代码时,按ctrl+/能够注释目前行或选中的多行代码;按Atrl+/能够揭示积极告终代码的提醒。
4.选中代码,按 ctrl+shift+F 款式化代码
5.输入sysoen.riaen.com,按atrl+/可出来 System.out.println("") ;-----------------------------------NokiaS60 UI API bug
1 回旋后,并以clip的措施向缓冲上贴图,clip无效
2 无法创立透明muttable Image
此两点,致命伤,带来众多不变
-----------------------------------J2ME中利用随机数
发生0~n之间的随机数
(ran.nextInt()>>>1)%n
或
(ran.nextInt()&0x7FFFFFFF)%n
发生-n~0之间的随机数
(ran.nextInt() | 0x80000000 )%n
-----------------------------------NokiaS60模仿器失常退出
症状:模仿器积极关闭,没提醒任何讹谬
起因:利用了Nokia UI API中的灯光或振动扼制,而Nokia S60局部机型和对应的模仿器不扶持这两个个性.
------------------------------------
检测机型,总是有点用处的
在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还是能够的
------------------------------------J2ME中查表法利用三角函数
CLDC和MIDP都未曾供给三角函数,而且CLDC1.0中也未曾浮点数,因而我们的抉择是查表。利用8位定点数的sin和cos表。下面是wtk自带demo中的代码,只供给了有限的几个角度,切实利用时依据必需细化角度值。
www.freeki7.info// sines of angles 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, all *256
private static final int[] SINES =
{ 0, 44, 88, 128, 165, 196, 222, 241, 252, 256 };
// angle is in degrees/10, i.e. 0..36 for full circle
private static int sineTimes256(int angle)
{
angle %= 36; // 360 degrees
if (angle 游戏运征途序中,有时会揭示“存储已满”的对话框,揭示的位置不安宁
游戏运征途序中,有时揭示“利用过程讹谬 NullPointerExcept”,“过程已关闭 MidpUi”的对话框
游戏运征途序中,有时会揭示“过程已关闭 MidpUi ViewSrv 9”的对话框,揭示的位置不安宁
其实这个问题是由S60的getResourceAsStream措施内存泄露的bug引起的,由于每次切换地图时io垄断都要读取许多数据,内存泄露聚集到定然程度就引起了“存储已满”,白屏,死机,进而会引起null pointer失常等。处理措施是尽量收缩io垄断的次数。万一内存够大就顺次将资源读入。
----------------------------------------
初次利用JBuilder 7-若干小问题
1 MobileSet问题
JBuilder7需另外安装MobileSet, Mobileset自带了一个WTK. 万一不安装MobileSet,JB7搭配JDK时不能积极分辨WTK,安装MobileSet后,能够穿越搭配JDK的措施加入新的WTK
2 资源文件问题
JBuilder的所有源文件都该当放在source path中,能够在工程属性中设置source path,资源文件也一样。既能够和源文件放在一个source path(即文件夹)中,也能够放在另外的source path中。必需当心的是,JBuilder只默认得别定然数量的后缀,如png,万一你利用了其他后缀的资源文件,如dat,bin,必需先把该文件穿越add files加入到工程中,抉择文件属性,设置为copy,这么该后缀的文件就被辨感受资源文件了。
3 光标不对问题
最容易的措施-改字体,我改成了第一种字体(JB7中),感受和默认字体没什么不同。至于这个问题的大约处理措施网上有文论述。
4 鼠标滚轮无效问题
据说这个问题只在JB7和以下版本中存在,起因是只有J2SDK1.4以上才扶持滚轮,因而必需将JB7的JDK改成1.4的. 措施是修正JBuilder7/bin/jdk.config文件,将javapath和addpath两行修正,例如:
# javapath ../jdk1.3.1/jre/bin/hotspot/jvm.dll
javapath Y:/j2sdk1.4.2/jre/bin/server/jvm.dll
# addpath ../jdk1.3.1/lib/tools.jar
addpath Y:/j2sdk1.4.2/lib/tools.jar
-------------------------------------运行Nokia模仿器的一个当心事项
这是一个老问题了,本来用WTK的时候就有,在WTK中启用Nokia的模仿器,万一过去曾经打了包,那么运行的是打包的过程,想当年经常会很烦闷为什么修改了没收获,尔后养成一个适应,将jar装到达机测验后随手剔除。
今天用JBuilder的时候又碰到了这个问题,也是Nokia的模仿器,万一曾经发生了一个archive,那么Nokia模仿器运行的总是包,呵呵,因而要么将archive从project中remove,要么每次都rebuilder这个archive。二、常见讹谬2#: 未曾克隆(clone)归来的对象
用Tile开发利用.
猜你喜欢
转载自wai87wai.iteye.com/blog/1571593
今日推荐
周排行