0

Cocos2d で自分のキャラクターを表すクラスがあります。
スプライトシート + .plist ファイルをエクスポートしました。

キャラクターには複数のアニメーションがあります。

フレームは単に"Character_1.png"と呼ばれます。
4つまで。これは基本的な歩行アニメーションです。

多くのスプライト アニメーション チュートリアルで、次のサンプル コードを見つけました。このサンプル コードは、スプライト フレーム キャッシュをループし、それを配列に追加して、アニメーション化できるようにします。

for(int i = 1; i <= 4; ++i) {
    [animationFrames addObject:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:[NSString stringWithFormat:@"Character_%d.png", i]]];
}

ただし、ほとんどのスプライトはこのようにアニメーション化されるため、これをスーパー クラスに委譲したいと考えています。

私はそれを次のように呼ぶことを考えました

spriteWithAnimations:(NSArray *)animationNames

そして、上の例のように、それらを調べます。

したがって、配列のパラメーターとして string を取得し@"Character_%d"、while ループを作成してファイルが存在するかどうかを確認し、存在する場合はそれを配列に追加します。

唯一の問題は、そのようなメソッドがないため、フレーム「Character_05.png」が存在するかどうかを確認できないことです。CCSpriteFrameCache

これは通常どのように解決されますか?

4

1 に答える 1

1

CCSpriteFrameCache が特定のフレーム名に対して nil を返す場合、それが存在しないことがわかります。エレガントではありませんが、機能します。

于 2013-02-02T20:29:35.087 に答える