我的应用从网址获取一些资源,特别是.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中的资源?
答案 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将被无声地正确处理。