我遇到了一个问题,即我的资源目录中的文件未被识别为位于主捆绑包中。
我正在使用 texturePacker 使用 pvr 文件格式创建纹理图集。texturePacker 的输出产生两个文件 xxx_iPhone-hd.pvr.ccz 和 xxx_iPhone-hd.plist。这两个文件存储在我的 cocos2d 项目的资源目录中。将文件存储在资源文件夹中后,我转到资源文件夹并右键单击“将文件添加到“myProject””(未选中将项目复制到目标框)。
当我的 cocos2d 项目运行并尝试加载此文件时,主包不知道绝对路径。具体来说,我的代码执行以下代码行:
backgroundBgNode = [CCSpriteBatchNode batchNodeWithFile:@"StoreMenuBackground_iPhone.pvr.ccz"];
cocos2d 代码知道设备有视网膜显示器,并修改文件名以创建“StoreMenuBackground_iPhone-hd.pvr.ccz”的relPath。然后它尝试执行以下操作:
NSString *imageDirectory = [relPath stringByDeletingLastPathComponent];
fullpath = [[NSBundle mainBundle] pathForResource:file
ofType:nil
inDirectory:imageDirectory];
这导致完整路径为零。我之前用上面的过程创建了一个不同的xxx_iPhone5-hd.pvr.ccz文件,上面的代码成功返回了全路径。我已经非常仔细地检查并重新检查了拼写,没有发现任何问题。我还尝试删除并重新添加项目“构建阶段”的“复制捆绑资源”下的文件。我可以做些什么来强制 mainBundle 找到这个文件吗?