completedAnimationSequenceNamed被重复调用

时间:2013-06-18 02:35:05

标签: cocos2d-iphone

我正在使用cocos2d和cocosBuilder。 我试图做一个开始动画,然后一旦完成,让所有的子节点都执行他们的空闲动画。

我是如何做起动画的:

(void)onEnter {

[super onEnter];

CCLOG(@"onEnter being called");

// Schedule a selector that is called every frame
[self schedule:@selector(update:)];

// Make sure touches are enabled
self.touchEnabled = YES;

//intro animation
CCBAnimationManager* animationManager = self.userObject;
animationManager.delegate = self;

[animationManager runAnimationsForSequenceNamed:@"words"];

}

这就是我的completedAnimationSequenceNamed看起来像:

(void)completedAnimationSequenceNamed:(NSString *)name {

CCLOG(@"animation ended");

for(CCNode *c in [self children])
{
    if([c isKindOfClass:[GameObject class]])
        [c playIdleAnimation];
}

}

出于某种原因,我的completedAnimationSequenceNamed被重复调用,每秒多次,导致我的孩子不断重启他们的空闲动画。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我得到了它,这适用于其他遇到此问题的人。

为了使“(void)completedAnimationSequenceNamed:(NSString *)name”方法正常工作,您必须自动启动动画(在cocosBuilder项目中),而不是使用来自animationManager的动画动画。

如果我使用了来自animationManager的runAnimation方法,它(基本上)打破了回调方法。但我只是把它拿出来让动画自动运行,并按预期回调。