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 回答