有没有办法在sharedSpriteFrameCache中打印所有精灵帧?

时间:2012-04-22 21:00:53

标签: xcode cocos2d-iphone

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

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

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

通常我会编写我在这里尝试过的内容,但是我没有找到任何引用访问sprite框架名称,键或对象或者sharedSpriteFrameCache的方法的内容。

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

1 个答案:

答案 0 :(得分:0)

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

如果你进入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