1

我正在使用 cocosbuilder 2.1 运行 cocos2d,并且我使用 cocosbuilder 动画委托 ( CCBAnimationManagerDelegate::completedAnimationSequenceNamed) 在动画完成时收到通知并采取诸如触发另一个 cocosbuilder 动画之类的操作。

第一次从foodfactoryshow代理运行动画时它运行良好,动画完成后它也restoration正确运行动画。但是,当restoration动画完成时,方法的参数是name!?-(void) completedAnimationSequenceNamedNULL

-(void) completedAnimationSequenceNamed:(NSString*)name
{
if ([name isEqualToString:@"foodfactoryshow"])
{
    [manager runAnimationsForSequenceNamed:@"restoration"];
}
if ([name isEqualToString:@"restoration"])
{
    [self colorLayerChanged];
    self.gameLayer.isLock = true;
}
}

这是一个错误还是我不应该从该CCBAnimationManagerDelegate::completedAnimationSequenceNamed方法运行动画!?

在此先感谢您的帮助。

4

1 回答 1

2

我相信这是一个 CCBReader 错误。在 CocosBuilder github 页面 ( https://github.com/cocos2d/CocosBuilder/issues/121 ) 中有一个未解决的问题。最新版本的 CocosBuilder + CCBReader 应该已经修复了,但是如果你想使用 2.1 版本可以将 CCBAnimationManager 的 "sequenceCompleted" 方法改成如下:

- (void) sequenceCompleted
{
    NSString *completedSequenceName = [runningSequence.name copy];
    int nextSeqId = runningSequence.chainedSequenceId;
    runningSequence = NULL;

    if (nextSeqId != -1)
    {
        [self runAnimationsForSequenceId:nextSeqId tweenDuration:0];
    }

    [delegate completedAnimationSequenceNamed:completedSequenceName];
    [completedSequenceName release];
}
于 2013-03-23T09:47:21.863 回答