使用BinCompiler将资源文件打包成二进制文件(转载)
2012-12-03 19:04
239 查看
转载自:/article/4362623.html
标签:二进制 资源 BinCompiler 文件 打包
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/article/4362623.html
在开发游戏时,总是要使用很多的资源文件,比如:图片、音乐等。而我们经常会遇到一些商业游戏中都看不到这些资源文件,那是因为商业游戏,一般都会将这些资源文件打包成二进制的文件,然后在程序中读取,并使用。这样的游戏看上去更显得专业一些,本文我们就来学习一个最简单的将资源文件打包成二进制文件的方法——使用BinCompiler将资源文件打包成二进制文件。
所需工具:BinCompiler(见附件)
运行“BinCompiler.exe”,指定要打包的资源文件的路径,和输出二进制文件的路径,如下图所示。
点击create按钮,即在我们制定的位置产生一个bin文件,当然在这个bin文件所在目录还会产生一个index.txt文件。我们在程序中读取这些资源时,需要使用这个index.txt。index.txt文件如下所示:
接下来我们可以使用BinReader.java文件中的两个方法来读取这些资源文件了。
代码清单:BinReader.java
可以看出,这两个方法都只需要传入bin文件名和图片对应的pos,pos值就在我们上面所说的index.txt文件中去找对应的就可以了。
例如我们读取一个图片
可以看出,我们传入的pos的值是0,对应index.txt中就应该是A_04.png。
很简单,可以直接使用就是了。谢谢大家支持。
本文出自 “yarin's blog™” 博客,请务必保留此出处/article/4362623.html
标签:二进制 资源 BinCompiler 文件 打包
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/article/4362623.html
在开发游戏时,总是要使用很多的资源文件,比如:图片、音乐等。而我们经常会遇到一些商业游戏中都看不到这些资源文件,那是因为商业游戏,一般都会将这些资源文件打包成二进制的文件,然后在程序中读取,并使用。这样的游戏看上去更显得专业一些,本文我们就来学习一个最简单的将资源文件打包成二进制文件的方法——使用BinCompiler将资源文件打包成二进制文件。
所需工具:BinCompiler(见附件)
运行“BinCompiler.exe”,指定要打包的资源文件的路径,和输出二进制文件的路径,如下图所示。
点击create按钮,即在我们制定的位置产生一个bin文件,当然在这个bin文件所在目录还会产生一个index.txt文件。我们在程序中读取这些资源时,需要使用这个index.txt。index.txt文件如下所示:
FName Index Pos Size A_04.png 0 0 4141 A_03.png 1 4145 3802 A_02.png 2 7951 3813 A_01.png 3 11768 3959
接下来我们可以使用BinReader.java文件中的两个方法来读取这些资源文件了。
代码清单:BinReader.java
/******************************************************************************* * Reads a file from the BIN file and return data as a byte buffer *******************************************************************************/ public byte[] readFile(String binfile, int pos) { byte buffer[]; int len; try { InputStream is = Class.getClass().getResourceAsStream("/" + binfile); is.skip(pos); len = (is.read() & 0xFF) << 24; len |= (is.read() 0xFF) << 16; len |= (is.read() & 0xFF) << 8; len |= (is.read() & 0xFF); buffer = new byte[len]; is.read(buffer, 0, buffer.length); is.close(); is = null; System.gc(); } catch (Exception e) { buffer = null; e.printStackTrace(); System.gc(); return null; } return buffer; } /******************************************************************************* * Reads a file from the BIN file and return data as an Image *******************************************************************************/ public Image readImage(String binfile, long pos) { byte buffer[]; long len; try { InputStream is = Class.getClass().getResourceAsStream("/" + binfile); is.skip(pos); len = (is.read() & 0xFF) << 24; len |= (is.read() 0xFF) << 16; len |= (is.read() & 0xFF) << 8; len |= (is.read() & 0xFF); buffer = new byte[len]; is.read(buffer, 0, buffer.length); is.close(); is = null; System.gc(); } catch (Exception e) { buffer = null; e.printStackTrace(); System.gc(); return null; } return Image.createImage(buffer, 0, buffer.length); }
可以看出,这两个方法都只需要传入bin文件名和图片对应的pos,pos值就在我们上面所说的index.txt文件中去找对应的就可以了。
例如我们读取一个图片
Image image = readimage("images.bin", 0);
可以看出,我们传入的pos的值是0,对应index.txt中就应该是A_04.png。
很简单,可以直接使用就是了。谢谢大家支持。
本文出自 “yarin's blog™” 博客,请务必保留此出处/article/4362623.html
相关文章推荐
- 使用BinCompiler将资源文件打包成二进制文件
- 使用BinCompiler将资源文件打包成二进制文件
- 使用BinCompiler将资源文件打包成二进制文件
- ASP.NET 下的资源文件使用【转载】
- 如何使用 Visual Studio 2005 将应用程序及其资源打包到一个 CAB 文件中
- 【XNA 4】使用Easy Pak打包XNA游戏资源文件
- 使用BINCompiler转换游戏资源文件为二进制文件
- Maven 使用指南(7): 使用Maven打包资源文件
- 【转载】利用MAVEN打包时,如何包含更多的资源文件
- 如何在C#中使用内嵌资源文件(转载学习)
- 使用maven为不同环境打包资源文件
- 第一步 使用sencha touch cmd 4.0 创建项目、打包(加入全局变量、公用类、自定义扩展、资源文件)
- 转:使用BinCompiler将资源文件打包成二进制文件
- 现在介绍一种使用资源文件,将dll、ocx打包进exe,点击直接注册的例子:
- 如何使用 Visual Studio 2005 将应用程序及其资源打包到一个 CAB 文件中
- android把activity和资源文件打包成jar包给其他项目使用
- iOS 制作静态库 .a 文件 和 .framework 文件 以及解决第三方库冲突问题 最后附上图片及Xib资源打包成 bundle (转载 mark 一下)
- 如何在C#中使用内嵌资源文件(转载学习)
- 使用webpack打包ThinkPHP的资源文件
- 2.QT中使用资源文件,程序打包