第二十一章:资产配置文件

jME3允许开发者通过资产配置文件(AssetConfig)来管理 AssetLocator 和 AssetLoader 。本文将介绍 AssetConfig 的格式及用法。 繁琐的代码 第一章:多媒体资产管道 中列出了 jME3 支持的各种资产文件格式,每种格式都有对应的 AssetLoader 来进行解析。根据前几章的介绍,如果想让 AssetManager 能够加载这些文件,需要先调用 registerLoader 方法配置加载器。 下面的代码演示了如何配置这些 ...

第二十章:资产缓存

在 jMonkeyEngine 中,资产缓存(AssetCache)对开发者是个黑盒。绝大多数时间你都不会意识到它的存在,直到有一天程序突然发生内存溢出,抛出一个 OutOfMemoryError。 例如: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 众所周知,Java程序运行于虚拟机(JVM)之上,会自动进行垃圾回收( ...

第十九章:自定义AssetLoader

用Java I/O读取文件,分为三步: 打开输入流 读取数据 关闭输入流 在jME3中,“读取数据”这一步是由资产加载器(AssetLoader)来实现的。AssetLoader是一个接口,只定义了一个方法: public interface AssetLoader { public Object load(AssetInfo info); } 当 AssetManager 在加载游戏资产时,先会调用各种 ...

第十八章:自定义AssetLocator

前文已经分析了 AssetLocator 的工作原理,本章将介绍如何实现自定义AssetLocator。 jME3 提供了很多不同类型的 AssetLoactor,诸如: ClasspathLocator FileLocator ZipLocator UrlLocator HttpZipLocator 如果感兴趣,读者可以直接查阅它们的源代码,阅读源码是学习的最好方式。 压缩文件格式 在游戏发布时,开发者经常需要把美术资产打成加密、压缩资源包。每个工作室都可能有自己的加密算法,但通用的压缩算法只有几种:zip, rar, tar, gz, ...

第十七章:AssetLocator原理

先总结一下前面几章中讲过的概念: 用Java I/O读取文件,分为三步: 打开输入流 读取数据 关闭输入流 在jME3中,“打开输入流”这一步是由资产定位器(AssetLocator)来实现的。 通过调用 AssetManager 中的 registerLocator(String rootPath, Class locatorClass) 方法,可以配置一对 资产根目录 和 资产定位器 ...