0

有没有办法在控制台中打印我场景的 sharedSpriteFrameCache 中包含的所有对象?使用 NSLog 或 CCLOG 的东西?

我在我的场景中有这个,并希望它打印出现在 plist 中的帧的名称。

[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"samplesprites.plist"];

通常我会在这里写我已经尝试过的东西,但是我还没有找到任何引用访问精灵帧名称、键、对象或任何用于 sharedSpriteFrameCache 的方法的方法。

编辑:我可能应该详细说明我确实知道框架名称在 plist 文件中的事实,但是,我遇到了一个错误,控制台说我的框架名称不存在,但我知道它确实存在。我已经找到了各种解决方法,但这对于我尝试使用的故障排除方法来说更像是一个好奇的问题。请求的技术可能没有任何实际用途,但是,它真的可以做到吗?

4

1 回答 1

0

里卡德在他的评论中回答了这个问题,但这里是详细说明:

如果你进入 libs 下的 Cocos2d 文件夹,你会发现CSpriteFrameCache.hCCSpriteFrameCache.m.

更改您的 CCSpriteFrameCache.h 文件以包含以下附加行:

@interface CCSpriteFrameCache : NSObject
{
    ...(existing code)
    NSMutableDictionary *showSpriteFrames;//or whatever you want to call it
}

然后,在 CCSpriteFrameCache.m 中,添加:

-(NSMutableDictionary *) showSpriteFrames 
{
    return spriteFrames_;
}

然后在代码中的任何位置,您希望显示当前缓存中的精灵帧,输入以下内容:

NSMutableDictionary *framesDict = [[CCSpriteFrameCache sharedSpriteFrameCache] showSpriteFrames];

for (NSString *frameKey in framesDict)
{
    CCLOG(@"Frame name: %@", frameKey);
}

归因于此链接的答案:http: //www.cocos2d-iphone.org/forum/topic/31060

于 2012-05-03T13:05:19.237 回答