我正在使用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被重复调用,每秒多次,导致我的孩子不断重启他们的空闲动画。
有什么想法吗?
答案 0 :(得分:1)
我得到了它,这适用于其他遇到此问题的人。
为了使“(void)completedAnimationSequenceNamed:(NSString *)name”方法正常工作,您必须自动启动动画(在cocosBuilder项目中),而不是使用来自animationManager的动画动画。
如果我使用了来自animationManager的runAnimation方法,它(基本上)打破了回调方法。但我只是把它拿出来让动画自动运行,并按预期回调。