Cocos2d-x 加载资源路径详解(CCFileUtils,CCFileData用法)
资源路径的设置方法
- 使用 CCFileUtils::setResource() 函数(一下简称 setResource函数)可以方便快捷的设置资源路径。下面先介绍下此接口的功能,以及使用方法。以方便对后面内容的理解。
setResource 函数的参数 pszZipFileName 和 pszResPath 分别表示「zip文件名」和「资源文件路径」。其中,pszResPath 有默认参数 NULL。 - 以列表形式表示 setResource 函数使用不同参数时,资源查找方式的不同:
模拟器资源读取 真机资源读取 setResource(NULL, NULL) 从 D:/Work7/NEWPLUS/TG3/APP/ 目录读取资源。 从 .so 文件的安装目录读取资源。 setResource(“XXX.zip”) 从D:/Work7/NEWPLUS/TG3/APP/XXX.zip 文件读取资源。 从 .so 文件的安装目录下的 XXX.zip 文件读取资源。 setResource(NULL,”/AAA/BBB/” ) 从 D:/Work7/AAA/BBB/ 目录读取资源。 从 /AAA/BBB/ 目录读取资源。 setResource(“XXX.zip”,”/AAA/BBB/”) 从 D:/Work7/AAA/BBB/XXX.zip 文件读取资源。 从 /AAA/BBB/XXX.zip 文件读取资源。
- 注:
- 如果pszZipFileName 参数非 NULL,在 setResource 函数调用时,如果找不到 zip 文件,则会给出提示框进行提示,同时应用将会从相应的目录读取需要的资源(不再从 zip 文件中读取)。
- 如果 pszZipFileName 参数非 NULL,并且能够找到相应的 zip 文件,此时如果代码中使用的资源文件在 zip 文件中无法找到,则应用会出现bug(不会再从相应目录查找资源)。
- 关于 .so 文件的安装目录后面会进行详细的介绍。
以上方法为网上收集。
以下是本人测试过最有效读取资源办法为:
std::string fullPath = CCFileUtils::fullPathFromRelativePath("资源相对路径");
CCFileData *fileData = new CCFileData(fullPath.c_str(),"r");
unsigned char* data = fileData->getBuffer();
由www.J2meGame.com原创,转载请说明。