0

我无法让它工作,这让我发疯。我只是想在它被调用时播放我的动画。我正在使用SpritebuilderCocos2d。我有一个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返回一个空值。我将如何正确引用这个?

我认为这是因为我正在导入它并且它正在失去连接但不确定如何正确执行它。

4

1 回答 1

1

动画管理器不在您要运行动画的节点上,而是始终在 CCB 的根节点上。我也被那个绊倒了。:)

例如,如果您的英雄是 GameScene.ccb 的一部分,那么您必须获取对 GameScene 根节点的引用(通常是自定义类)并从该对象获取动画管理器。

如果您的英雄在 GameScene.ccb 引用的另一个 CCB(比如 player.ccb)中,并且您要播放的时间线动画在 player.ccb 中编辑,那么您必须从 GameScene 中的子文件节点获取动画管理器.ccb 引用 player.ccb。每个 CCB 的根节点都包含动画管理器,用于存储其 CCB 的时间线动画。

请注意,v3.1 将有一个animationManager属性,如果您已经在 v3.1(开发分支)上,那么您必须使用该属性而不是userObject.

于 2014-06-13T15:59:06.510 回答