第十九章:自定义AssetLoader
用Java I/O读取文件,分为三步: 打开输入流 读取数据 关闭输入流 在jME3中,“读取数据”这一步是由资产加载器(AssetLoader)来实现的。AssetLoader是一个接口,只定义了一个方法: public interface AssetLoader { public Object load( ...
基本概念什么是序列化Java序列化(Serialization),即将Java对象转化为二进制的字节数据,反之就是反序列化。为什么要序列化序列化后Java对象变成了字节数据,可以更方便地存储和传输。当你想要持久化存储数据时(包括文件、数据库、缓存等)当你需要通过网络传输对象时(包括RMI、RPC等)如何比较序列化序列化后的码流大小:占用网络带宽、存储空间序列化的性能:占用CPU、内存是否支持跨语言:异构系统的对接和开发语言切换API使用的难易度:开发和维护的成本JDK序列化Java自带的序列化方式, ...
jME3允许开发者通过资产配置文件(AssetConfig)来管理 AssetLocator 和 AssetLoader 。本文将介绍 AssetConfig 的格式及用法。 繁琐的代码 第一章:多媒体资产管道 中列出了 jME3 支持的各种资产文件格式,每种格式都有对应的 AssetLoader 来进行解析。根据前几章的介绍,如果想让 ...
在 jMonkeyEngine 中,资产缓存(AssetCache)对开发者是个黑盒。绝大多数时间你都不会意识到它的存在,直到有一天程序突然发生内存溢出,抛出一个 OutOfMemoryError。 例如: Exception in thread "main" java.lang.OutOfMemoryError: ...
用Java I/O读取文件,分为三步: 打开输入流 读取数据 关闭输入流 在jME3中,“读取数据”这一步是由资产加载器(AssetLoader)来实现的。AssetLoader是一个接口,只定义了一个方法: public interface AssetLoader { public Object load( ...
前文已经分析了 AssetLocator 的工作原理,本章将介绍如何实现自定义AssetLocator。 jME3 提供了很多不同类型的 AssetLoactor,诸如: ClasspathLocator FileLocator ZipLocator UrlLocator HttpZipLocator 如果感兴趣,读者可以直接查阅它们的源代码,阅读源码是学习的最好方式。 压缩文件格式 在游戏发布时,开发者经常需要把美术资产打成加密、压缩资源包。 ...