如何让Cocos2D可以搜索特定路径中的资源?

时间:2012-11-19 03:39:21

标签: url resources cocos2d-iphone

我的应用从网址获取一些资源,特别是.pvr.ccz,并将其保存在Documents目录中。

NSString *documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
...
[responseObject writeToFile:[documentsDirectoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", <file_name>, @"pvr.ccz"]] options:NSAtomicWrite error:nil];

之后使用.plist.pvr.ccz创建精灵。属性列表中已在项目中指定的.png图像列表。

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"<property_list_name>.plist"];
CCSprite *sprite = [CCSprite spriteWithSpriteFrameName:[NSString stringWithFormat:@"<file_name>.png"]];

这将被警告-[CCFileUtils fullPathFromRelativePath:resolutionType:] : cocos2d: Warning: File not found: <file_name>.pvr.ccz

有没有办法让Cocos2D可以从保存在特定文件夹中的URL中搜索资源?或者有没有办法在Cocos2D找到它们的地方保存URL中的资源?

1 个答案:

答案 0 :(得分:1)

我相信如果你指定一条完整的coco路径,它会看到那里。因此

NSString*fqn = [documentsDirectoryPath stringByAppendingPathComponent@"<property_list_name>.plist"];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:fqn];

没试过这个,但它应该有效。

编辑:假设.plist在项目中,但.pvr.ccz在文档字典中。假设您的纹理被称为“downloaded-hd.pvr.ccz”,项目为设备启用HD,以下示例应该找到您的文件:

NSString*textureFileName=@"downloaded-hd.pvr.ccz";
NSString*fqn = 
    [documentsDirectoryPath stringByAppendingPathComponent:textureFileName];
[[CCSpriteFrameCache sharedSpriteFrameCache] 
    addSpriteFramesWithFile:@"<property_list_name>.plist"
            textureFileName:fqn];

我认为-hd将被无声地正确处理。