Несколько действий спрайта - PullRequest
0 голосов
/ 30 марта 2011

Я использую движок Cocos2d и столкнулся со странной проблемой.

У меня есть спрайт. Кроме того, у меня есть 2 анимации для этого спрайта. И я хочу воспроизвести одну анимацию при загрузке приложения, а вторую - после вызова ccTouchevent.

walkAnim = [CCAnimation animation]; 
dropAnim = [CCAnimation animation]; 
for( int q=1;q<12;q++){
    [walkAnim addFrameWithFilename: [NSString stringWithFormat:@"walkforward_%.2d.png", q]];
    [dropAnim addFrameWithFilename: [NSString stringWithFormat:@"drop_%.2d.png", q]];
}
action = [CCAnimate actionWithAnimation:walkAnim];
action.duration = 2;
id act = [CCRepeatForever actionWithAction:action];
[sprite runAction:act];

Итак, здесь мы видим оживляющий спрайт.

[sprite stopAllActions]; //and here my torture begins

Я пробовал много способов создания действия:
Я пытался добавить еще один AnimateAction, пытался заменить текущую анимацию, но все приводит к падению.

[action setAnimation:dropAnim];

и

CCAnimate* animat = [[CCAnimate alloc]initWithDuration:30 animation:dropAnim restoreOriginalFrame:YES];

и

id action = [CCRepeatForever actionWithAction:[CCAnimate actionWithAnimation:dropAnim]];
[player1 runAction:action];

Сбой в [CCAnimate actionWithAnimation:]

+(id) actionWithAnimation: (CCAnimation*)anim
{    
    return [[[self alloc] initWithAnimation:anim restoreOriginalFrame:YES] autorelease];
}

Спасибо!

Чтобы запустить действие из другого метода, вы должны сохранить действие
Например: [действие сохранить];

1 Ответ

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

Чтобы запустить действие из другого метода, вы должны сохранить действие
Например: [сохранение действия];и тогда не забудь отпустить

-(void)create{
    for( int q=1;q<12;q++){
        [playerWalkAnim addFrameWithFilename: [NSString stringWithFormat:@"walkforward_%.2d.png", q]];
    }
    playerAction = [CCAnimate actionWithAnimation:playerWalkAnim];
    playerAction.duration = 2;

    [playerAction retain];
}

-(void)launch{
    [player1 runAction:playerAction];
}
...