[cocos2dx开发技巧2]工具CocosBuilder的使用--集成
CocosBuilder工程会产生3类文件,后缀分别为ccbproj, ccb, ccbi(其中前两个文件使工程文件--ccb.ccbproj, apple.ccb。 ccbi文件,是导出的文件,被cocos2dx程序使用,如上图的apple.ccbi);
2)配置cocosBuilder属性点击菜单File/Publish Setting..., 弹出如下对话框:![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410871.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410872.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410873.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410874.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410875.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410876.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410877.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410878.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410879.png)
选中这个物体,先缩放其为0.1f; 然后在事件轴中的0s和2s处,分别按快捷键v, r和s,创建Visible,Rotate和Scale的关键帧(对应菜单Animations/Insert Keyframe中的相关选项),在1s处,创建scale关键帧;如下图:![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410881.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410882.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410882.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410883.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410884.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410885.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410886.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410887.png)
![[cocos2dx开发技艺2]工具CocosBuilder的使用-集成](http://img.reader8.net/uploadfile/jiaocheng/201401103/2856/2014012815561410888.png)
选择CCLayer,在右侧的Custom class中填写Intro。(如果是Custom class显示为 JS Controller,点击菜单Document/JavaScipt Controlled, 去掉其选项)。这个就可以理解上面的代码了:#ifndef ShootTheApple_CcbBase_h#define ShootTheApple_CcbBase_h#include "cocos2d.h"#include "cocos-ext.h"#include "Box2D.h"USING_NS_CC;USING_NS_CC_EXT;class CcbBase: public cocos2d::CCLayer, public cocos2d::extension::CCBSelectorResolver, public cocos2d::extension::CCBMemberVariableAssigner, public cocos2d::extension::CCNodeLoaderListener{public: virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(cocos2d::CCObject * pTarget, const char * pSelectorName) { // do nothing //CCB_SELECTORRESOLVER_CCMENUITEM_GLUE(this, "onPlay", Playground::btnPlay); return NULL; } virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBCCControlSelector(cocos2d::CCObject * pTarget, const char * pSelectorName) { // do nothing return NULL; } virtual bool onAssignCCBMemberVariable(cocos2d::CCObject * pTarget, const char * pMemberVariableName, cocos2d::CCNode * pNode) { // do nothing //CCB_MEMBERVARIABLEASSIGNER_GLUE(this, "apple", CCSprite *, this->apple); return NULL; } virtual bool onAssignCCBCustomProperty(CCObject* pTarget, const char* pMemberVariableName, cocos2d::extension::CCBValue* pCCBValue) { // do nothing return false; } virtual void onNodeLoaded(cocos2d::CCNode * pNode, cocos2d::extension::CCNodeLoader * pNodeLoader) { // do nothing }};#endif
CCReader进行ccbi和自定义类的联系的过程如下,CCBReader一边解析ccbi文件,一边调用自定义类的onResolveCCBCCMenuItemSelector等方法;在这些回调方法中,可以进行相关的绑定工作,如对象绑定,CCMenuItem selector的绑定等。更多的绑定细则,请参考cocosBuilder中的帮助。
如果用Object-C就方便多了,由于其动态性,可以根据名称自动反射,而C++则需要手工绑定,繁琐些,不过为了cocosBuilder带来的方便,这个也值得。
下一篇文章介绍怎么使用CocosBuilder加快Box2d的开发
版本说明在这个demo中,cocosBuilder的版本为Version 3 alpha3,配套的cocos2dx版本为cocos2d-2.1rc0-x-2.1.2;
cocosBuilder的官方:http://cocosbuilder.com/
cocosBuilder官方教程:https://github.com/vlidholt/CocosDragon/blob/master/Tutorial/Tutorial.md
cocos2dx的相关页面:http://www.cocos2d-x.org/news/95