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开发利用.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值