0

私はスプライトに自分自身を永遠にアニメートさせようとしています。問題はなく、問題なく構築されています。メニューを通り過ぎて、アニメートしたいスプライトがあるシーンをクリックすると、クラッシュします。アニメーションに次のコードを使用しています。

        [[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"sprite_fly.plist"];
    CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode batchNodeWithFile:@"sprite_fly.png"];
    [self addChild:spriteSheet];
    NSMutableArray *flapAnimFrames = [NSMutableArray array];
    for(int i = 1; i<=6; ++i) {
        [flapAnimFrames addObject:
            [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:
             [NSString stringWithFormat:@"Fly%d.png"]]];
    }
    CCAnimation *flapAnim = [CCAnimation animationWithFrames:flapAnimFrames delay:1];
    CGSize winSize = [CCDirector sharedDirector].winSize;
    fly = [CCSprite spriteWithSpriteFrameName:@"fly1.png"];
    fly.position = ccp(winSize.width/2, winSize.height/2);
    flapAction = [CCRepeatForever actionWithAction:
                  [CCAnimate actionWithAnimation:flapAnim restoreOriginalFrame:NO]];
    [fly runAction:flapAction];
    [spriteSheet addChild:fly];

問題はコードの最初の行であるCCSpriteFrameCacheに関係していると思いますが、何も問題はありません。助けてください、または私のスプライトをアニメーション化する別の方法を教えてください。

4

1 に答える 1

0

これがcocos2dのアニメーションの最良の例だと思います。ここをクリックしてください

よくわかりませんが、問題はスプライト画像または画像名にあると思います。plistファイルで画像名を確認してください。すべての画像が、アニメーションに使用しているのと同じサイズであることを確認してください。

それがあなたを助けることを願っています。

于 2012-02-18T06:27:12.677 に答える