cocos2dx加载资源路径是怎样设置的?最近需要这方面的东西就在网上查了一下。
资源路径的设置方法使用 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();