j2me入门问题若干

未几说,只几个项目碰到的问题。希望能相助一些网友少走弯路。重要针对主流机器。
一.采取cldc1.0
不细说其余,cldc1.0告诉你,不用应用1.1的浮点数,Math.sin(x)等函数。如若应用了,在一些主流机器上直接不给你装配jar资料,你能很惨。。。。像sin函数等,你可用查表模式,先用工具计算出零-360度的值,并放大1024(左移10位速度快些)写死在程序里,计算时,先放大后缩小步骤责任书精密度:左移10位或许更多(上头的操作),其后计算的话直接依据度数的下标查寻到值。演算完再右移10位,军令状了一定的精密度。对付像台球碰球,射击枪子儿等晓得视角,算道路,大抵足够了。
二.采取midp2.0,1.0用也行,但不推荐了。但绝对不用用2.1
用2.0,但决不要用GameCanvas,很多机器支持得乌七八糟,Image.createImage(Image i,x,y);也不用用,在nokia一些机器上很不支持,会出白边可能其余底色。Sprite要用,但只用Sprite的翻转参数,种Sprite决不用。画图时用drawRegion()可能setClip再drawImge(),绝对靠得住,两者速度何以,据称差不远,但midp1.0就有的setClip配合drawImage步骤相对烦劳些,drawRegion是独一在midp2.0画图方面比midp1.0爽,并靠得住的步骤。主流手机对这两个画图的支持仍是不错的。但!drawRegion用Sprite的翻转参数做翻转时,在像nokia7610时会十分慢,解决方案是用nokia自带的包。我推荐尽可能不要翻转,仅用Sprite.TRANS_NONE,当然,你直接运用零也行,TRANS_NONE的值乃是零嘛。呵呵。很多j二me游戏入门的图书,都引见了,game包里的GameCanvas,Sprite等,十分难为情对这些笔者和读者讲,这在现实开发中,不要,是废的!
三.j二me游戏面向对象,设计方式等一些非常好的设计模式,在j二me上亟需作出抉择
项目中不用太多的种,我搞过一款航行射击游戏,用了100多个种,发现n73相对好点性能的手机内存储器都过不去,并且速度慢,嗣后不停归拢种,删去接口,很苦痛。最后在60个类上下总算主流机型都过了,速度也不卡了。不倡议1点oop也不讲做游戏,也不推荐过渡设计。有点手机对oop的支持,仍是很有问题的:
interface A定义步骤b();abstract class C implements A;C种体上没重申明这abstarct b()步骤,其后可范例化的种class D extends c,把D转成C其后调用b步骤,这决是没问题的。可是在nokia7610上你这么弄,它会抛出步骤没找到的异常(no such method be found)。早年,找出这个bug费好大劲。希望有人碰到这问题能失去相助
四.搅混器施用
有点代码,不搅混,程序在手机上ok;搅混后不成;有点又相反。一样性能,编译后字节码资料都或者大了,也或者小了。通常情况下是搅混后,包小了,性能高了。如其万一相反,那么你可以尝试除此而外个搅混器版本试试。如果有点代码,不搅混,程序在手机上ok;搅混后不成,这种景况。那么,便是搅混器有问题了。别总是查程序,查不出毛病的。试过在程序中定义了个变量名为now来计时,结果发现索爱和lg上运作不行,时间总是不对点,程序没死,不按逻辑跑了。而放在nokia上是ok的哦。嗣后把now改为其余,全部机器上运作ok.这个搅混器可能机器的变量定名的bug叫你觅,你找多久?我找了一天。。。
五.线程应用
j二me中不用超过2个线程,要不然像索爱很不稳定,或许本次能跑过,下次不行。尽可能不用运用匿名线程,由于很多时分,用了它代码里你一不小心会有许多这些匿名种,失控了.而这些编译后都市成一个种.你最好定义出这个线程种来,这么你心头就会有这个类存在,故此更好的统制线程.谈到线程,便提一下子音乐播发,具体兑现是线程仍是什么我没有研究,(播发不会拥塞,能自动播放,不影响运作,总的看应该是个线程吧,之所以你要计这个也是线程哦)但在j二me游戏里,音乐是很次很次的,不用播发太大的mid播发音乐,会卡很多,这点很正常,换小点的mid是独一步骤.
六.System.gc()
这步骤,你不要,那是最好的.你担心内存储器不够?调用它?jvm就会额外分出钱源去做内存储器回收,指不定下次它自己又做了呢?这么多出一次,多铺张啊?gc是是非非常耗资源的!很可能游戏中,一调用System.gc()就会卡一会,令玩家不得劲了.甚至有点机器万一调用System.gc()系统就慢得不行了!只要记得你运用的不要货色,用=null;一下子,注意摘引的回收,资源自动会回收的,不要担心.终竟jvm是透过了10几年查验的.很多读物或许公司口试题都特地用gc做文章.说用什么步骤回收资源,gc是什么.我以心得告诉你,那些很 呵呵,不过据说有什么机器,不调System.gc()就不回收的哦.不过,我是没有遇到过这种机器滴....
七.会用Runtime去察看内存储器总量,施用量
八.程序中卡的问题,大抵与循环相关.画图时记得用缓冲.状态更新,处置收入,画图,能在一个循环就一个搞定最好.
九.学会用银屏做参数来定位置,对移栽能很有好处
十.会应用动编,地编,能利用脚本
11.会用草编译
本文来源:
我的异常网
Java Exception
Dotnet Exception
Oracle Exception

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值