我正在从我的 Cocos2d-x 项目中加载一个 CCB 文件,但我无法从自定义类访问 CCBAnimationManager。
在 Cocos2d 中使用 Objective-C 很简单:
CCBAnimationManager* animationManager = self.userObject;
但是 C++ 中的相同实现返回一个空值,执行会导致崩溃......
任何的想法?谢谢
我正在从我的 Cocos2d-x 项目中加载一个 CCB 文件,但我无法从自定义类访问 CCBAnimationManager。
在 Cocos2d 中使用 Objective-C 很简单:
CCBAnimationManager* animationManager = self.userObject;
但是 C++ 中的相同实现返回一个空值,执行会导致崩溃......
任何的想法?谢谢
是的,它不像 obj-C 那样简单。新的 TestCpp 项目为此提供了一个示例。查看(CocosBuilderTest->AnimationsTest)。
基本上,您需要创建一个 CCNodeLoaderLibrary 并将其注册到您的自定义加载器类中。
CCNodeLoaderLibrary * ccNodeLoaderLibrary = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary();
ccNodeLoaderLibrary->registerCCNodeLoader("TestAnimationsLayer", AnimationsTestLayerLoader::loader());
然后用那个 ccNodeLoaderLibrary 创建一个 CCBReader
cocos2d::extension::CCBReader * ccbReader = new cocos2d::extension::CCBReader(ccNodeLoaderLibrary);
现在,您将能够通过此 ccbReader 获取 CCBAnimationManager
ccbReader->getAnimationManager()