`
windybell
  • 浏览: 15508 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JME3资源管理之三:资源加载流程

 
阅读更多
系列目录:
JME3资源管理之一:核心组件介绍
JME3资源管理之二:AssetLoader和AssetLocator
JME3资源管理之三:资源加载流程
JME3资源管理之四:心得和小节

JME3在加载资源的过程中,AssetManager会先根据AssetKey去缓存中查找资源,如果找得到的话当然皆大欢喜,找不到的话才会去读取磁盘。

具体加载的流程是这样的:
1、在缓存中查找资源

检查AssetCache中的资源,若找不到就进行下一步,若找到就直接返回了。
    AssetCache cache = handler.getCache(key.getCacheType());
    Object obj = cache != null ? cache.getFromCache(key) : null;


2、匹配AssetLoader

根据资源后缀名来匹配AssetLoader,找不到的话抛出异常。
    AssetLoader loader = handler.aquireLoader(key);


3、资源定位

遍历所有注册过的AssetLocater,返回AssetInfo,找不到的话会抛出异常。
    AssetInfo info = handler.tryLocate(key);


4、加载资源

调用AssetLoader的load(AssetInfo info)方法,返回资源对象。
    obj = loader.load(info);


5、后续处理

AssetLoader返回Object类型的对象,经过AssetProcessor处理后,转换成实际的对象类型。
比如AWTLoader读取图片数据后,返回Image类型的对象。再通过TextureProcessor处理后才变成Texture对象。
    AssetProcessor proc = handler.getProcessor(key.getProcessorType());
    if (proc != null){
        // do processing on asset before caching
        obj = proc.postProcess(key, obj);
    }


6、保存到缓存

资源加载结束后,对象会保存到缓存中。
    if (cache != null){
        // At this point, obj should be of type T
        cache.addToCache(key, (T) obj);
    }

分享到:
评论

相关推荐

    JME中文教程.pdf

    #### 三、JME3基本概念实例 - **JME3Application的生命周期**: 1. 启动(start) 2. 初始化(initialize) 3. 主循环(update) 4. 停止(stop) 5. 销毁(destroy) - **启动JME3程序示例**: ```java public ...

    jme3 api(精华chm)

    com.jme3.animation com.jme3.app com.jme3.app.state com.jme3.asset com.jme3.asset.pack com.jme3.asset.plugins com.jme3.audio com.jme3.audio.joal ...jme3tools.preview

    2015jme3指南

    通过深入学习《2015jme3指南》,开发者不仅可以了解JME3的使用,还能掌握3D游戏开发的基本流程和技巧,为今后的项目开发打下坚实基础。同时,结合博主的博客文章,可以得到更全面的开发经验,解决实际遇到的问题。

    JME3学习文档

    ### JME3游戏开发引擎中文学习指南 #### 引言 JME3,全称jMonkeyEngine3,是一款开源的3D游戏开发引擎,专为Java开发者设计,旨在简化3D游戏和应用程序的开发过程。本文档将详细介绍如何在Netbeans6.x环境下搭建...

    JME3 中文教程(ZBP翻译第一版)

    《JME3 中文教程(ZBP翻译第一版)》是一个专门为Java Media Engine 3 (JMonkeyEngine 3,简称JME3)爱好者和开发者准备的教程资源。JME3是一个开源的3D游戏开发框架,它基于Java编程语言,为开发者提供了高效、便捷...

    JME3中文教程(ZBP第一版)

    **JME3中文教程(ZBP第一版)** Java Media Engine 3,简称JME3,是一个基于Java的开源3D游戏引擎,专为开发高质量的2D和3D游戏而设计。它提供了丰富的功能,包括图形渲染、物理模拟、音频处理、网络通信等,使得...

    jme3材质基础知识

    其中,材质系统是jME3的核心部分之一,用于控制模型表面的外观,包括颜色、反射、透明度等属性。 材质在jME3中由`Material`类表示,它包含了多个`Texture`和`ShaderProgram`。`Texture`用于存储图像数据,如颜色、...

    jme3游戏demo rise-of-mutants

    为了确保游戏在不同设备上的流畅运行,jme3提供了性能优化工具,如帧率控制、资源管理、内存优化等。开发者需要考虑硬件兼容性和资源的合理分配。 通过“Rise of Mutants”这款游戏Demo,我们可以了解到jme3在3D...

    JME3 JAVADOC

    本文档是JME 的javadoc 文档 JME是一个高性能的3D图形API,采用LWJGL作为底层支持。它的后续版本将支持JOGL。JME和Java 3D具有类似的场景结构,开发者必须以树状方式组织自己的场景。JME有一套很好的优化机制,这...

    JME程序设计实例教程

    Java Micro Edition(JME),又称为Java 2 Micro Edition,是Java平台的一个子集,主要用于开发和部署在资源有限的设备上的应用程序,如移动电话、PDA、智能家电等嵌入式系统。本教程以实例为导向,深入浅出地介绍了...

    jme3-clj-aide:JMonkeyEngine3 + Clojure-Android + AIDE 示例项目

    同时,JME3还具有良好的社区支持,拥有丰富的教程和资源库,对于初学者和资深开发者都非常友好。 接下来是Clojure的角色。Clojure是一种运行在Java虚拟机上的编程语言,它的语法简洁,支持函数式编程,这使得代码更...

    JME的文件格式及支持的文件格式

    **JMonkeyEngine 3 (JME3) 文件格式详解** JMonkeyEngine 3(简称JME3)是一款开源的游戏开发引擎,专为构建3D游戏和应用而设计。它支持多种文件格式,使得开发者能够方便地导入和管理游戏资源。以下是对JME3支持的...

    JME商业游戏进阶二 (地表层的神秘面纱1)源代码

    9. **资源管理**:在游戏中,有效地加载、存储和释放资源非常重要。JME提供了资源管理器,源码会解释如何使用它来管理模型、纹理和其他游戏资产。 通过深入研究这个"ditu_example"的源代码,开发者不仅能学习到JME...

    JME教程.rar

    JME的目标是为资源有限的设备提供Java编程能力,如手机、智能手表、家用电器等。它简化了Java技术,使其适应于小型设备的内存和处理限制。JME由两部分组成:Connected Limited Device Configuration (CLDC) 和 ...

    java8看不到源码-JME3-JFX:用于JME的JFXGui桥接器,具有用于常见用例的有用实用程序

    JME3-JFX 用于 JME 的 JFX Gui 桥接器,具有用于常见用例的有用实用程序。 许可证是新的 BSD 许可证(与 JME3 相同) 二进制版本可在以下位置获得: ( ) ( ) 它也可以用作 maven 存储库(请参阅“设置我”按钮)。 ...

    sandbox_jme3_jogl:使用jogl后端实验jme3

    8. **资源加载**:JME3提供了一些工具类来加载和管理纹理、模型、音频等资源。 9. **调试和日志**:利用JME3的DebugKeys或日志框架(如log4j)进行调试输出。 总的来说,"sandbox_jme3_jogl:使用jogl后端实验jme3...

    JME试题及答案 socket 多线程 高级UI

    - **解析**:RMS(Record Management System)是JME中用于存储小量数据的简单数据库系统,而MS Access是一种桌面级的关系型数据库管理系统,两者之间不存在直接的相似之处。 **3. Sprite使用`paint()`方法** 正确...

    JME初级教程(持续跟新)

    7. **场景管理**:JME3的场景图是一种组织3D对象的方式,允许你方便地管理和操作游戏中的元素。理解节点、分支和组件的概念,以及如何通过脚本语言(如NiftyGUI)创建用户界面。 8. **音频处理**:JME3支持音频播放...

    JME (Java Math Expression):Java西班牙语数学表达式评估器-开源

    它还实现了强大的REPL模式,该模式允许您交互使用JME库实现的大多数语言功能,包括CSV,HTML,JSON和XML导入和导出。 可以在以下页面上查阅用户和开发人员文档:...

Global site tag (gtag.js) - Google Analytics