1

cocosbuilder 2.1 で cocos2d を実行しています。cocosbuilder アニメーション デリゲート ( CCBAnimationManagerDelegate::completedAnimationSequenceNamed) を使用して、アニメーションが完了したときに通知を受け取り、別の cocosbuilder アニメーションを起動するなどのアクションを実行します。

foodfactoryshowアニメーションがデリゲートから初めて実行されたときに正常に実行され、アニメーションが完了した後もrestorationアニメーションが正しく実行されます。しかし、restorationアニメーションが完成すると、メソッドのパラメータname-(void) completedAnimationSequenceNamed! NULL?

-(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 に答える