そのため、作成中のゲームのキャッシュにアニメーション スプライト フレームをロードした後、各アニメーションのフレーム数を数えます。これを行うのは、ゲーム構成に各アニメーションの継続時間の値があり、CCAnimation を作成すると、遅延属性が AnimationDuration/FramesAmount になるためです。
アニメーションごとのフレーム数をカウントするには、animations.plist を開き、すべてのキーを取得してエントリを繰り返し、ファイル名を削除し、すべてのフレームを (キーとして) NSMutableDictionary に保存します。反復。問題は、NSNumber intValue を取得し、+1 を実行してから、別の NSNumber を割り当ててキーの値をリセットする方法が気に入らないことです。これを行うより良い方法はありますか?? 皆さんありがとう!(ように.. php OR JSは辞書[フレーム] ++になります)
コードは次のとおりです。
NSString *finalPath = [path stringByAppendingPathComponent:@"animations.plist"];
NSDictionary *plistData = [[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];
NSMutableDictionary *conf = [NSMutableDictionary dictionary];
NSDictionary *frames = [plistData valueForKey:@"frames"];
NSNumber *amount;
for( int i=0; i < [frames count]; i++ ) {
NSString *frame = [[frames allKeys] objectAtIndex:i];
NSRange range = [frame rangeOfString:@"/" options:NSBackwardsSearch];
frame = [frame substringToIndex:range.location];
if( [conf objectForKey:frame] == nil )
amount = [[NSNumber alloc] initWithInt:1];
else
amount = [[NSNumber alloc] initWithInt:[[conf objectForKey:frame] intValue]+1];//amount++...
[conf setObject:amount forKey:frame];
}