gpt4 book ai didi

ios - 访问CCB根节点动画时间轴-Cocos2D

转载 作者:行者123 更新时间:2023-12-01 18:58:55 25 4
gpt4 key购买 nike

这让我发疯。我正在尝试访问CCB根节点,以便可以使用SpriteBuilder/Cocos2d获得动画时间轴。

我有heroCharacter.m,它是动画CCNode的自定义类。

我将其导入bedroomScene.m。使用

CCNode *_heroContainer;

在我看来确实加载了
//Import Hero Scene
CCNode *hero = [CCBReader loadAsScene:@"heros/panda"];
[_heroContainer addChild:hero];

当我运行animationManager时,它是一个空值。
CCBAnimationManager* animationManager = _heroContainer.userObject;
NSLog(@"AM: %@", animationManager);

有什么建议么?

最佳答案

首先,将CCB添加为另一个节点的子节点时,应使用load:而不是loadAsScene:

CCNode *hero = [CCBReader load:@"heros/panda"];
[_heroContainer addChild:hero];

使用上面的代码, hero将成为 heros/panda CCB文件的根节点。

使用 loadAsScene进行代码时,根节点被包装在CCScene对象中,因此 hero指向CCScene实例,而不是CCB的根节点。 CCScene的子节点数组仅包含一个子节点,这将是实际的CCB根节点。

接下来,您将已加载的CCB添加为 _heroContainer的子代。但是,给定CCB的动画管理器始终位于CCB的根节点上,这意味着(如果使用 load:而不是 loadAsScene:)该动画管理器位于 hero对象中,则不能位于 _heroContainer节点中:
CCBAnimationManager* animationManager = hero.userObject;
NSLog(@"AM: %@", animationManager);

请注意,如果您升级到cocos2d v3.1,则只需使用 hero.animationManager即可访问CCBAnimationManager。

关于ios - 访问CCB根节点动画时间轴-Cocos2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24283218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com