`
hao3100590
  • 浏览: 131517 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论
阅读更多


手机游戏设计中由于设备性能限制,可能出现资源不足的情况,这就需要优化实现技术,游戏的优化有很多的技巧,在我做的这个游戏中使用了以下方法:
   关于异常的处理
Java中提供了try/catch来方便用户捕捉异常,进行异常处理。但是如果使用不当,也会给J2ME程序的性能带来影响,所以在程序的编写过程中,应注意以下两点:如果可以使用ifwhile等逻辑语句来处理,就尽量不使用异常处理;对于必须要进行异常的处理时,尽可能的重用已经存在的异常对象。
   图片优化
J2ME的内存杀手无疑图片莫属,一张3kbpng图片可以占用20kb的内存。对于图片的优化在我做的这个游戏中使用了几种方法:将所有图片存储为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实现手机游戏优化技术的研究与实现 #### 摘要与背景 随着移动通信技术的飞速发展,尤其是3G技术的广泛应用,智能手机的功能日益强大,用户对于移动游戏的需求也越来越大。在此背景下,Java ...

    手机游戏优化技巧

    减少内存使用: —尽可能避免使用对象:具备某种意义功能时才使用对象,否则用基本数据类型; —重用对象:重用对象(初始化对象状态)而不重新创建;

    基于J2ME的手机游戏的优化及开发技巧

    ### 基于J2ME的手机游戏优化与开发技巧深度解析 #### 一、引言:手机游戏优化的重要性 随着智能手机的普及和技术的发展,手机游戏已成为人们日常娱乐的重要组成部分。在众多手机游戏开发技术中,Java 2 Micro ...

    java手机游戏--内存优化.jar

    内存优化.jar java手机游戏--内存优化.jar java手机游戏--内存优化.jarjava 手机游戏--内存优化.jar

    手机游戏开发全书试读版本

    - **促进产业发展**:对于初创的手机游戏开发公司来说,本书提供的科学开发流程能够有效指导其进行人力资源和物资资源的优化配置,促进产业健康发展。 综上所述,《手机游戏开发全书——J2ME完整实例精解》是一本...

    手机游戏资源图片

    "手机游戏资源图片"这个主题涵盖了从图像设计、格式选择到优化等多个方面,这些元素共同决定了游戏的美观度和运行效率。 首先,我们要理解图片资源在手机游戏中的作用。它们包括角色、场景、UI界面、图标、动画帧等...

    基于J2ME的手机游戏框架设计与优化.pdf

    ### 基于J2ME的手机游戏框架设计与优化 #### 核心知识点解析: 在探讨《基于J2ME的手机游戏框架设计与优化》这一主题时,我们需聚焦于J2ME(Java 2 Platform, Micro Edition)平台下的手机游戏开发技术,及其框架...

    手机游戏开发全书——部分章节试读.pdf

    书中提供了低成本、高效率、高质量的开发流程指南,这对手机游戏开发团队的管理者来说尤为宝贵,能够帮助他们合理分配人力资源,优化项目管理。 #### 6. 手机游戏开发全流程解析 本书的亮点之一是对RPG(角色扮演...

    brew 手机游戏开发实例brew 手机游戏开发实例

    四、Brew游戏优化与发布 1. 性能优化:由于手机硬件资源有限,开发者需要关注代码性能,通过算法优化、内存管理等方式提高游戏运行效率。 2. 包装与签名:在游戏开发完成后,需要将其打包成Brew可执行文件,并进行...

    手机游戏手机游戏

    手机游戏在当今数字娱乐领域占据了重要的地位,它们的快速发展得益于移动设备技术的进步和网络环境的优化。手机游戏的种类繁多,包括休闲益智、动作冒险、角色扮演、策略竞技等,满足了不同用户群体的需求。 手机...

    Java手机游戏开发实例 源码下载

    Java手机游戏开发是一个涵盖多个领域的综合技术,主要集中在J2ME(Java 2 Micro Edition)平台上,这是一种专门针对移动设备和嵌入式系统的Java平台。本实例教程将深入探讨如何利用Java技术创建手机游戏,通过提供的...

    Java手机游戏开发专辑

    Java手机游戏开发专辑是一系列深度探讨Java在手机游戏开发中的应用资源。这个专辑主要涵盖了三个核心部分:手机游戏开发的概述、MIDP编程的基础教程以及具体的MIDP图形设计和游戏开发实例。 首先,手机游戏开发概述...

    JAVA十大经典手机游戏

    【游戏优化技巧】 由于早期手机硬件限制,Java手机游戏需要特别关注性能优化。这包括减少内存消耗,避免过多的对象创建,合理使用数据结构,以及优化图像资源,如使用位图精灵(Sprite)和适当的图像格式。此外,...

    手机游戏程序手机游戏入门小程序

    【手机游戏程序与手机游戏入门小程序】 在移动设备上,手机游戏已经成为娱乐产业的重要组成部分,吸引了全球数亿玩家。要创建一款手机游戏,你需要具备一定的编程技能和对游戏设计的理解。本资源提供了一套详细的...

    java手机游戏模拟器

    Java手机游戏模拟器是一种软件工具,它允许用户在个人计算机上运行Java ME(Mobile Edition)或J2ME(Java 2 Platform, Micro Edition)平台上的手机游戏,无需实际的移动设备。这种模拟器通常用于测试游戏、开发...

    MTK手机游戏大富翁

    《MTK手机游戏大富翁》是一款专为MTK(Mediatek)系统设计的非智能手机游戏,其源码提供了一种深入理解手机游戏开发,尤其是对于非智能设备平台的游戏编程的宝贵资源。这款简单易懂的游戏源码,是开发者学习和实践...

    十大经典Java手机游戏

    Java手机游戏在2000年代中期到2010年代初非常流行,尤其是在功能手机时代,它们为用户带来了丰富的娱乐体验。以下是基于"十大经典Java手机游戏"这个主题的相关知识点: 1. **Java游戏开发环境**:Java ME(Micro ...

    48款JAVA手机游戏打包下载 [JAR经

    8. **性能优化**:由于硬件限制,Java手机游戏的性能优化至关重要。这包括减少对象创建、使用位运算代替浮点运算、以及优化循环和数据结构。 9. **事件处理**:通过键盘、触摸屏或方向键,Java游戏需要处理用户输入...

Global site tag (gtag.js) - Google Analytics