Objective c 多精灵动作

Objective c 多精灵动作,objective-c,cocos2d-iphone,ccsprite,Objective C,Cocos2d Iphone,Ccsprite,我正在使用Cocos2d引擎,我遇到了一个奇怪的问题 我有一个雪碧。另外,我有两个精灵的动画。我想在应用程序加载时播放一个动画,然后在调用ccTouchevent后播放第二个动画 walkAnim = [CCAnimation animation]; dropAnim = [CCAnimation animation]; for( int q=1;q<12;q++){ [walkAnim addFrameWithFilename: [NSString stringWithFor

我正在使用Cocos2d引擎,我遇到了一个奇怪的问题

我有一个雪碧。另外,我有两个精灵的动画。我想在应用程序加载时播放一个动画,然后在调用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];
我尝试了许多创建动作的方法:
我尝试添加另一个动画动作,尝试替换当前动画,但所有操作都会导致崩溃

[action setAnimation:dropAnim];

崩溃发生在[cAnimate actionWithAnimation:]

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


要从其他方法启动操作,您必须保留该操作
例如:[操作保留]
要从其他方法启动操作,必须保留该操作
例如:[保留行动];然后别忘了释放它

-(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];
}
-(无效)创建{

对于(int q=1;qi)如果你已经找到了你的问题的答案,请在这里回答你自己并接受它,这样其他人可以在他们找到这篇文章时使用它。祝你好运!注意“并接受它”部分,URLArenzo。此外,请仔细考虑您的标签。这与XCODE 4无关——这是语言/ API问题。谢谢,我明天就能接受它。
id action = [CCRepeatForever actionWithAction:[CCAnimate actionWithAnimation:dropAnim]];
[player1 runAction:action];
+(id) actionWithAnimation: (CCAnimation*)anim
{    
    return [[[self alloc] initWithAnimation:anim restoreOriginalFrame:YES] autorelease];
}
-(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];
}