cocosbuilder(cocosbuilder详细使用教程「建议收藏」)

发布时间:2025-12-10 19:11:32 浏览次数:4

cocosbuilder详细使用教程「建议收藏」-cocosbuilder是什么

cocosbuilder详细使用教程「建议收藏」本文使用cocos2d-x2.1.2版本。用cocosbuilder3alpha2版本。分两步走:第一步:1,新建一个cocosbuilder工程。默认创建HelloCocosBuilder的MainScene2,不改动任何内容,publish到对应的工程资源目录下,参考以下运行:MainScene.h#include”cocos-ext.h”US

本文使用cocos2d-x 2.1.2版本。

用cocosbuilder3 alpha2版本。


分两步走:

第一步:

1,新建一个cocosbuilder工程。默认创建Hello CocosBuilder的MainScene

2,不改动任何内容,publish到对应的工程资源目录下,参考以下运行:

MainScene.h

#include "cocos-ext.h"USING_NS_CC_EXT;USING_NS_CC;class MainScene:public CCLayer{public:    static CCScene* scene();};

是否还在为Ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活CLion DataGrip DataSpell dotCover dotMemory dotTrace GoLand PhpStorm PyCharm ReSharper ReShaC++ Rider RubyMine WebStorm 全家桶 刷新

【正版授权,激活自己账号】:Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】:官方授权 正版激活 自己使用,支持Jetbrains家族下所有IDE…

MainScene.cpp:
#include "MainScene.h"CCScene* MainScene::scene(){    CCScene *scene = CCScene::create();        CCNodeLoaderLibrary *lib = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary();    //lib->registerCCNodeLoader("MainScene", MainSceneLayerLoader::loader());    CCBReader *reader = new CCBReader(lib);    CCNode *node = reader->readNodeGraphFromFile("MainScene.ccbi", scene);    reader->release();    if (node!=NULL)    {        scene->addChild(node);    }    return scene;}

此时基本无问题,都能运行起来。

3,替换或加几个控件,很可能出现程序启动的时候又找不到图片资源的错误,请参考http://blog.csdn.net/luxiaoyu_sdc/article/details/8849854

至此,界面加载问题解决完毕。

第二步:实现cocosbuilder的动态绑定。

1,自定义类绑定

class MainSceneLayerLoader : public cocos2d::extension::CCLayerLoader{public:    CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(MainSceneLayerLoader, loader);protected:    CCB_VIRTUAL_NEW_AUTORELEASE_CREATECCNODE_METHOD(MainScene);};

2,属性绑定
public cocos2d::extension::CCBMemberVariableAssignervirtual bool onAssignCCBMemberVariable(CCObject* pTarget, const char* pMemberVariableName, CCNode* pNode) = 0;virtual bool onAssignCCBCustomProperty(CCObject* pTarget, const char* pMemberVariableName, CCBValue* pCCBValue) { return false; };
3,成员变量绑定
public cocos2d::extension::CCBMemberVariableAssignervirtual bool onAssignCCBMemberVariable(CCObject* pTarget, const char* pMemberVariableName, CCNode* pNode) = 0;virtual bool onAssignCCBCustomProperty(CCObject* pTarget, const char* pMemberVariableName, CCBValue* pCCBValue) { return false; };CCB_MEMBERVARIABLEASSIGNER_GLUE(this, "mLabelText", CCLabelBMFont*, this->mLabelText);CCB_MEMBERVARIABLEASSIGNER_GLUE(this, "mTitleLabelTTF", CCLabelTTF*, this->mTitleLabelTTF);// 在初始化函数中调用public cocos2d::extension::CCNodeLoaderListenervirtual void onNodeLoaded(CCNode * pNode, CCNodeLoader * pNodeLoader) = 0;void MainScene::onNodeLoaded(cocos2d::CCNode *pNode, cocos2d::extension::CCNodeLoader *pNodeLoader){    this->mLabelText->setString("All Loaded");}

4,菜单事件绑定
public cocos2d::extension::CCBSelectorResolvervirtual SEL_MenuHandler onResolveCCBCCMenuItemSelector(CCObject * pTarget, const char* pSelectorName) = 0;   virtual SEL_CCControlHandler onResolveCCBCCControlSelector(CCObject * pTarget, const char* pSelectorName) = 0;CCB_SELECTORRESOLVER_CCMENUITEM_GLUE(this, "onPressA", MenuLayer::onPressA);CCB_SELECTORRESOLVER_CCMENUITEM_GLUE(this, "onPressB", MenuLayer::onPressB);

5,控制按钮绑定
public cocos2d::extension::CCBSelectorResolvervirtual SEL_MenuHandler onResolveCCBCCMenuItemSelector(CCObject * pTarget, const char* pSelectorName) = 0;virtual SEL_CCControlHandler onResolveCCBCCControlSelector(CCObject * pTarget, const char* pSelectorName) = 0;CCB_SELECTORRESOLVER_CCCONTROL_GLUE(this, "onButtonTest", MainScene::onButtonTest);

稍后给出运行例子截图和相关说明。



需要做网站?需要网络推广?欢迎咨询客户经理 13272073477