手机游戏设计中由于设备性能限制,可能出现资源不足的情况,这就需要优化实现技术,游戏的优化有很多的技巧,在我做的这个游戏中使用了以下方法:
⒈ 关于异常的处理
Java中提供了try/catch来方便用户捕捉异常,进行异常处理。但是如果使用不当,也会给J2ME程序的性能带来影响,所以在程序的编写过程中,应注意以下两点:如果可以使用if,while等逻辑语句来处理,就尽量不使用异常处理;对于必须要进行异常的处理时,尽可能的重用已经存在的异常对象。
⒉ 图片优化
J2ME的内存杀手无疑图片莫属,一张3kb的png图片可以占用20多kb的内存。对于图片的优化在我做的这个游戏中使用了几种方法:将所有图片存储为8位色,而不是16位或24位;也可以将同一规格的图片合并,做成一张长条的图片,并在导入时使用时creatImage()函数裁剪。如原来为130*50的图片,取其左面的一部分
写道
playerSprite=new Sprite(Image.createImage("/res/MyPlaneFrames.png"), 65, 50);
⒊ 代码优化
Java的垃圾回收器并非是实时的,从某种角度来讲在J2ME上所有垃圾必须由手工释放,因为简单类型外所有对象都必须显示置空。例如在游戏程序中对于生命面包类对象bread的声明:
waterLayer=new TiledLayer(50,200,Image.createImage("/res/backg.png"),32,32);
该段代码是先创建了对象然后再进行赋值操作,也就是说在这期间有两个对象同时存在,这就很可能会产生溢出,同时这样做也会妨碍垃圾回收器的工作,较好的编程如下:
写道
waterLayer=null; waterLayer=newTiledLayer(50,200,Image.createImage("/res/backg.png"),32,32);
把所有对象的初始化放在构造函数中是理所当然的,大多数人通常的做法是把当前逻辑所要用到的资源全部初始化完毕。但是很大一部分的内存溢出都是发生在构造函数中,内存使用的高峰期都是在构造函数中,避开这个高峰期就能有效地防止溢出,所以程序汇总对于变量的初始化尽量在第一次调用时进行。
Java代码访问成员变量比局部变量所需的时间更长。其原因和两种变量的内存如何访问有关。实际上,这意味着在性能关键的时候,你应该使用局部变量而不是成员变量。例如有一个循环重复访问的成员变量,那么,应该考虑在开始循环之前把这个成员变量存储到一个局部变量中。下面是游戏中在一个循环中访问成员变量:
写道
for(int i=0;i<MAX_BP;i++){
if(bigPlane[i].getY()>downLimit-bigPlane[i].getHeight())
bigPlane[i].setVisible(false);};
可以看到,bigPlane对象的成员变量在循环中被访问了MAX_BP次。这段代码的一种快速优化包是把bigPlane[i].geyY设置给一个局部变量,然后在循环中访问这个局部变量,可以在for循环之前定义局部变量String a[],然后在循环中用a[]代替bigPlane[i].getY。
⒋ 减少内存的使用
在很多时候,手机内存的限制比设备的有限处理能力的限制要显著的多,因此尽可能地减少手机游戏的内存使用显得及其重要,可以利用一些实际的开发方法来减少一个游戏MIDlet所需的内存。一般情况下,对于减少内存的使用所用的方法是使用对象时重用对象。
对象重用就是重新使用已有的对象,而不是创建一个新的对象。这种方法只有在需要重复使用相同类的对象时才奏效。对象重用避免了不必要的内存分配。例如如果创建一个对象然后终止使用它,java垃圾回收器最终会释放分配给它的内存。如果需要另一个相同的类型的对象并且创建了新的,对象所需要的内存会自动重新分配,那么,可以把最初的对象重新初始化而不再创建一个新的,这要也就重用了对象。
分享到:
相关推荐
优秀论文\应用J2ME实现手机游戏优化技术的研究与实现,毕业论文设计,毕业答辩,手机游戏,J2ME。
减少内存使用: —尽可能避免使用对象:具备某种意义功能时才使用对象,否则用基本数据类型; —重用对象:重用对象(初始化对象状态)而不重新创建;
内存优化.jar java手机游戏--内存优化.jar java手机游戏--内存优化.jarjava 手机游戏--内存优化.jar
有关于J2ME的手机游戏算法优化的 文档的
基于J2ME的手机游戏框架设计与优化.pdf
应该是优化CPU之类的 用了 觉得没什么效果 ,,不过在论坛找到的 应该不错
基于此,国内手机游戏产业在精益思想的引导下,明确用户需求,精益求精地匹配用户群体,努力消除营销活动中的非增值活动和浪费行为,合理选择渠道,准确投放广告,并不断优化反馈。 帮助原始的手机游戏营销精益专业...
终端普及和网络优化带动了中国移动互联网用户的快速增长。中国互联网研究中心(CNNIC)的数据显示,2012年我国手机网民规模达到4.2亿。以11.1亿全国手机用户数(工信部)来计算,手机网民渗透率为37.8%,正处于30%-...
j2me游戏优化 适合安卓游戏的代码优化,让编码更精简更效率
有二十来个文档,涉及j2me线程、游戏引擎、代码内存优化、算法、游戏AI以及一些游戏的设计与实现等多个方面。内容很杂,不过值得一读。
为此,我们开展了基于SSM(Spring、Spring MVC、MyBatis)和VUE技术栈的J2ME手机游戏开发项目,旨在探索和实践如何利用现代技术实现高效的J2ME手机游戏开发。 项目目的 提高开发效率:通过SSM和VUE技术栈,简化开发...
Windows Mobile 扫雷 手机游戏 源码 C# 手机屏幕240*320 难度分为初中高级自定义,对于初、中、高三个等级有计时,排行榜,图片采用的是WindowsXP上的经典扫雷图片,还有一种别的主题 可以选择,游戏支持.wav声音,...
本文介绍了一款基于JAVA基于J2ME的手机游戏的开发设计。该游戏采用了J2ME的游戏框架,使用了J2ME的游戏引擎,实现了游戏的基本功能,包括游戏场景的切换、游戏角色的控制、游戏物品的收集、游戏敌人的攻击等。 游戏...
一款wm6.5操作系统下的手机优化程序。90%以上手机用户都在使用它。
帝国 cms7.5 内核仿六皮游戏网,因百度去除了 MIP 支持,本次提供删除了 MIP 端,仅 PC+M,是一个界面非常漂亮的手机游戏下载、游戏资讯、游戏新闻门户网站模板。 非常大气漂亮的手游模板,个人觉得比现在官方改版的...
Java手机游戏《堡垒》是一款以建造与策略为核心的手机游戏,玩家需要在游戏中扮演一位领主,建立自己的城堡并发展壮大自己的领地。以下是游戏设计与开发的主要内容: 游戏玩法: 玩家作为领主需要通过收集资源、...
最新精仿某手机游戏网整站源码适用范围: 92GAME仿《手游》,手游源码下载,手机游戏门户网站 系统说明: 一、采集用织梦cms系统,UTF-8 最新版本二次开发。 二、92工作室强力打造,三大智能系统手机平台,最...
这是做手机游戏必备的软件,可以对PNG图片减容,并优化图片,非常好用,