gpt4 book ai didi

ios - 从 Cocos2D-v2 的文档文件夹中添加 spriteframe

转载 作者:行者123 更新时间:2023-11-29 12:12:18 25 4
gpt4 key购买 nike

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

我让这个代码库工作了很长时间,但它不再工作了,我现在只是想不出如何添加包根目录下不存在的 spriteframe 内容。

从外观上看,我曾经使用相对路径添加 plist/png Sprite 帧对,并将其发送到 CCSpriteFrameCache。像 ../Documents/hosteddownloads/somespriteframe.plist 等。通常你只需将 myspriteframe.plist 发送到 [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:spriteframefile];

我知道从包到 plist 和 png 的相对路径。如果我只是指定了那些路径,我要是能让 CCSpriteFrameCache 加载这些东西就好了……

最佳答案

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

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

这样您就可以计算出绝对路径,并保护自己免受环境可能发生的变化的影响。此外,CCSpriteFrameCache 可能会考虑到路径是绝对路径并且行为适当的事实。

最后,.plist 嵌入了纹理名称,随之而来的是困惑。我使用另一个构造函数来加载缓存,如下所示:

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

关于ios - 从 Cocos2D-v2 的文档文件夹中添加 spriteframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33098574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com