我无法让这个工作,这让我疯了。我只是想在调用它时播放我的动画。我正在使用Spritebuilder
和Cocos2d
。我有一个CCNode
,我使用
#import "heroCharacter.h"
//Reference
CCNode *_heroContainer;
//Then
CCNode *hero = [CCBReader loadAsScene:@"heros/panda"];
[_heroContainer addChild:hero z:1 name:@"level1"];
CCNode
包含各种时间轴动画。
我试图使用:
调用动画CCBAnimationManager* animationManager = _heroContainer.userObject;
NSLog(@"AM: %@", animationManager);
[animationManager runAnimationsForSequenceNamed:@"ouch"];
AM
返回Null值。我怎么能正确引用这个?
我认为这是因为我正在导入它并且它正在失去连接但不确定如何正确地进行。
答案 0 :(得分:1)
动画管理器在要运行动画的节点上不,但始终位于CCB的根节点上。我也绊倒了。 :)
例如,如果您的英雄是GameScene.ccb的一部分,那么您必须获得对GameScene的根节点(通常是自定义类)的引用,并从该对象获取动画管理器。
如果你的英雄在GameScene.ccb引用的另一个CCB(比如player.ccb)中,你想要播放的时间轴动画是在player.ccb中编辑的,那么你必须从子文件中获取动画管理器GameScene.ccb中引用player.ccb的节点。每个CCB的根节点都包含动画管理器,用于存储其CCB的时间轴动画。
请注意,v3.1将具有animationManager
属性,如果您已经使用v3.1(开发分支),那么您必须使用该属性而不是userObject
。< / p>