0

シーンの sharedSpriteFrameCache に含まれるすべてのオブジェクトをコンソールに出力する方法はありますか? NSLogまたはCCLOGを使用していますか?

シーンにこれがあり、plist に表示されるフレームの名前を出力したいと考えています。

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

通常、私はすでに試したことをここに書きますが、スプライト フレーム名、キー、オブジェクト、または sharedSpriteFrameCache にアクセスする方法を参照するものは何も見つかりませんでした。

編集:フレーム名が plist ファイルにあることを知っているという事実について詳しく説明する必要がありますが、コンソールにフレーム名が存在しないというエラーが表示されますが、存在することはわかっています。さまざまな回避策を見つけましたが、これは私が使用しようとしているトラブルシューティングのアプローチに対する好奇心の問題です。要求された技術は実際には役に立たないかもしれませんが、実際に実行できますか?

4

1 に答える 1

0

リカールはコメントでこの質問に答えましたが、詳細は次のとおりです。

libs の下の Cocos2d フォルダーに移動するCSpriteFrameCache.hと、 とCCSpriteFrameCache.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 に答える