从Cocos2D-v2中的文档文件夹添加精灵帧

我需要将下载的spriteframe(plist / png set)从Documents文件夹添加到Cocos2D v2的spriteframecaching中。

我有这个代码库工作很长一段时间,但它不工作了,我现在不知道如何添加spriteframe内容不存在的权利,在束的根目录下。

从它看起来,我曾经通过使用相对path添加plist / png spriteframe对,并将其发送到CCSpriteFrameCache。 就像../Documents/hosteddownloads/somespriteframe.plist等。通常你只需要发送myspriteframe.plist[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:spriteframefile];

我知道从捆绑到plist和png的相对path。 如果只有我可以使CCSpriteFrameCache加载东西,如果我只是指定这些path…

嗯…从来没有使用过相对path,但是这对我有用:

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString * _documentDir = [paths objectAtIndex:0]; NSString *fqn = [_documentDir stringByAppendingPathComponent:@"filename.plist"]; TRACE(@"%@", fqn); 

在这种情况下在日志中产生

 -[GEFileUtil init] : /Users/yvesleborg/Library/Developer/CoreSimulator/Devices/FBF0C759-4ECB-468D-99FC-6BDA9982351A/data/Containers/Data/Application/2FF9D117-3763-4AE2-A1FA-4B25E1308CC2/Documents/filename.plist 

这样你可以计算绝对path,并保护自己免受环境的可能变化。 此外,CCSpriteFrameCache可能会考虑到path是绝对的并且行为适当的事实。

最后,.plistembedded纹理名称,并可能引发混淆。 我使用另一个构造函数加载caching,如下所示:

 NSString *plist = [_documentDir stringByAppendingPathComponent:@"filename.plist"]; NSString *png = [_documentDir stringByAppendingPathComponent:@"filename.png"]; [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:plist textureFilename:png];