使用BinCompiler将资源文件打包成二进制文件(转载)
来源:互联网 发布:linux怎么运行脚本 编辑:程序博客网 时间:2024/05/21 19:22
转载自:http://yarin.blog.51cto.com/1130898/381934
标签:二进制 资源 BinCompiler 文件 打包
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yarin.blog.51cto.com/1130898/381934
在开发游戏时,总是要使用很多的资源文件,比如:图片、音乐等。而我们经常会遇到一些商业游戏中都看不到这些资源文件,那是因为商业游戏,一般都会将这些资源文件打包成二进制的文件,然后在程序中读取,并使用。这样的游戏看上去更显得专业一些,本文我们就来学习一个最简单的将资源文件打包成二进制文件的方法——使用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™” 博客,请务必保留此出处http://yarin.blog.51cto.com/1130898/381934
- 使用BinCompiler将资源文件打包成二进制文件(转载)
- 使用BinCompiler将资源文件打包成二进制文件
- 使用BinCompiler将资源文件打包成二进制文件
- 使用BinCompiler将资源文件打包成二进制文件
- 使用BINCompiler转换游戏资源文件为二进制文件
- 资源转为BIN文件工具BinCompiler
- 将资源文件打包成.bin文件
- 如何将资源打包成.unity3d文件
- 如何将EXE和资源文件打包成一个EXE
- 如何将MFC资源文件打包成dll
- 如何使用 Visual Studio 2005 将应用程序及其资源打包到一个 CAB 文件中
- 如何使用 Visual Studio 2005 将应用程序及其资源打包到一个 CAB 文件中
- 【python】使用cx_Freeze将.py文件打包成exe文件
- Pyqt 获取打包二进制文件中的资源
- cocos2dx-使用TexturePacker为资源文件打包
- 使用Eclipse将工程打包成jar文件
- 使用DOS命令将java文件打包成jar
- 使用Pyinstaller将python脚本打包成exe文件
- 批处理for命令/f参数的用法
- Servlet Filter(过滤器)、Filter是如何实现拦截的、Filter开发入门
- 对学习的感悟
- Linux系统管理员都应该熟悉的工具
- 调查:2013年急需的十大热门 IT 技能
- 使用BinCompiler将资源文件打包成二进制文件(转载)
- POJ 1042 枚举+优先队列
- 管理员必备的20个Linux系统监控工具
- Tcp/Ip的第二版评价
- ubuntu 12.04 在vmware7.1下安装问题解决Q&A_20121203
- 最短路
- cocos2d-x学习笔记-CCAction(动作)
- C++单向链表实例
- dedecms制作网站