Ошибка подтверждения в этой строке - PullRequest
0 голосов
/ 08 марта 2011
CCSprite *ni = [CCSprite spriteWithFile:@"blue_animation.png"];
ni.position = ccp(5,66);

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

CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode 
                                  batchNodeWithFile:@"blue_ani.png"];
[self addChild:spriteSheet];
NSMutableArray *walkAnimFrames = [NSMutableArray array];
for(int i = 1; i <= 3; ++i) {
    [walkAnimFrames addObject:
        [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:
        [NSString stringWithFormat:@"baloon-bl_%d.png", i]]];
}
CCAnimation *walkAnim = [CCAnimation 
                         animationWithFrames:walkAnimFrames delay:0.1f];

CCSprite *blue_action_1 = [CCSprite spriteWithSpriteFrameName:@"blue_ani.png"];        
CGSize winSize = [CCDirector sharedDirector].winSize;

blue_action_1.position = ccp(winSize.width/2, winSize.height/2);
self.blue_action_motion = [CCRepeatForever actionWithAction:
                          [CCAnimate actionWithAnimation:walkAnim restoreOriginalFrame:NO]];
[blue_action_1 runAction:blue_action_motion];
[spriteSheet addChild:blue_action_1]; 

Ошибка подтверждения в -[CCSprite initWithSpriteFrame:] в cocso2d

как я могу это исправить.

Ответы [ 3 ]

1 голос
/ 09 марта 2011

Попробуйте заменить эту строку:

CCSprite *blue_action_1 = [CCSprite spriteWithSpriteFrameName:@"blue_ani.png"];

С этой строкой:

CCSprite *blue_action_1 = [CCSprite spriteWithSpriteFrameName:@"baloon-bl_1.png"];

По сути, ваш "blue_ani.png" является таблицей спрайтов, которая содержит несколько спрайтов, поэтому вы не можете использовать всю таблицу в качестве спрайта. Поэтому вам нужно инициализировать ваш blue_action_1 спрайт, используя один из спрайтов, указав правильное имя фрейма ("baloon-bl_1.png", "baloon-bl_2.png" или "baloon-bl_3.png", если я правильно вывел из ваш код).

0 голосов
/ 08 марта 2011

Вы добавили свой CCSprite * ni как ребенка?

0 голосов
/ 08 марта 2011

это мой код

CCSprite *ni = [CCSprite spriteWithFile:@"blue_animation.png"];
            ni.position = ccp(5,66);

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

            CCSpriteBatchNode *spriteSheet = [CCSpriteBatchNode 
                                              batchNodeWithFile:@"blue_ani.png"];
            [self addChild:spriteSheet];
            NSMutableArray *walkAnimFrames = [NSMutableArray array];
            for(int i = 1; i <= 3; ++i) {
                [walkAnimFrames addObject:
                 [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:
                  [NSString stringWithFormat:@"baloon-bl_%d.png", i]]];
            }
            CCAnimation *walkAnim = [CCAnimation 
                                     animationWithFrames:walkAnimFrames delay:0.1f];

            CCSprite *blue_action_1 = [CCSprite spriteWithSpriteFrameName:@"blue_ani.png"];        
            CGSize winSize = [CCDirector sharedDirector].winSize;

            blue_action_1.position = ccp(winSize.width/2, winSize.height/2);
            self.blue_action_motion = [CCRepeatForever actionWithAction:
                               [CCAnimate actionWithAnimation:walkAnim restoreOriginalFrame:NO]];
            [blue_action_1 runAction:blue_action_motion];
            [spriteSheet addChild:blue_action_1];
...