0

.pvr.ccz我的应用程序从 URL获取一些资源,特别是,并将它们保存在Documents目录中。

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

之后使用.plistand创建一个精灵.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 中搜索资源?或者有什么方法可以将 URL 中的资源保存在 Cocos2D 可以找到的地方?

4

1 回答 1

1

我相信,如果您指定可可的完整路径,它会在那里。因此

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

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

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

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

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

于 2012-11-19T04:44:42.813 回答