{"id":605,"date":"2013-04-07T04:16:22","date_gmt":"2013-04-07T04:16:22","guid":{"rendered":"http:\/\/blog.zhukunqian.com\/?p=605"},"modified":"2013-04-07T04:16:22","modified_gmt":"2013-04-07T04:16:22","slug":"cocos2dx%e4%b8%ad%e9%9b%86%e6%88%90ccbuilder","status":"publish","type":"post","link":"http:\/\/blog.zhukunqian.com\/?p=605","title":{"rendered":"cocos2dx\u4e2d\u96c6\u6210ccbuilder"},"content":{"rendered":"<p>\u6700\u5c0f\u7684\u96c6\u6210\uff1a<\/p>\n<p>\u9700\u8981\u81ea\u5b9a\u4e49loader:<\/p>\n<p>class MyCustomCCLayerLoader:public CCLayerLoader{<\/p>\n<p>public:<\/p>\n<p>CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(MyCustomCCLayerLoader, loader);<\/p>\n<p>protected:<\/p>\n<p>CCB_VIRTUAL_NEW_AUTORELEASE_CREATECCNODE_METHOD(HelloLayer); \/\/ \u8fd9\u91cc\u6dfb\u52a0\u4e0eccb\u4e2d\u5b9a\u4e49\u5bf9\u5e94\u7684\u7c7b<\/p>\n<p>};<\/p>\n<p>\u52a0\u8f7dccbi\u4ee3\u7801\uff1a<\/p>\n<p>CCNodeLoaderLibrary* library=CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary();<\/p>\n<p>library-&gt;registerCCNodeLoader(&#8220;HelloLayer&#8221;, MyCustomCCLayerLoader::loader());<\/p>\n<p>CCBReader* reader=new CCBReader(library);<\/p>\n<p>reader-&gt;autorelease();<\/p>\n<p>pDirector-&gt;runWithScene(reader-&gt;createSceneWithNodeGraphFromFile(&#8220;HelloCocosBuilder.ccbi&#8221;));<\/p>\n<p>&nbsp;<\/p>\n<p>\u81ea\u5b9a\u4e49\u7684Layer:<\/p>\n<p>class HelloLayer:public CCLayer,public CCBSelectorResolver,public CCBMemberVariableAssigner,public CCNodeLoaderListener<\/p>\n<p>{<\/p>\n<p>public:<\/p>\n<p>CCLabelTTF* testTTF;<\/p>\n<p>public:<\/p>\n<p>\/\/ \u70b9\u51fb\u5904\u7406<\/p>\n<p>virtual void pressedClickme(CCObject* target,CCControlEvent* event);<\/p>\n<p>\/\/ \u8fd9\u91cc\u4e5f\u6ca1\u6709\u88ab\u8c03\u7528,\u539f\u6765\u9700\u8981CCNodeLoaderListener\uff0c\u5f53\u4ececcb\u6587\u4ef6\u521b\u5efa\u540e\u88ab\u8c03\u7528<\/p>\n<p>virtual void onNodeLoaded(CCNode * pNode, CCNodeLoader * pNodeLoader);<\/p>\n<p>\/\/ \u8bbe\u7f6emenuItem\u7684\u8c03\u7528<\/p>\n<p>virtual SEL_MenuHandler onResolveCCBCCMenuItemSelector(CCObject * pTarget, CCString * pSelectorName);<\/p>\n<p>\/\/ \u8bbe\u7f6ebutton\u7684\u8c03\u7528<\/p>\n<p>virtual SEL_CCControlHandler onResolveCCBCCControlSelector(CCObject * pTarget, CCString * pSelectorName);<\/p>\n<p>\/\/ \u8bbe\u7f6e\u5c5e\u6027<\/p>\n<p>virtual bool onAssignCCBMemberVariable(CCObject * pTarget, CCString * pMemberVariableName, CCNode * pNode);<\/p>\n<p>\/\/ \u8fd9\u662f\u505a\u4ec0\u4e48\u7528\u7684\uff1f<\/p>\n<p>virtual bool init();<\/p>\n<p>\/\/ \u521b\u5efa\u81ea\u52a8\u91ca\u653e\u7684\u672c\u7c7b\u5bf9\u8c61<\/p>\n<p>CREATE_FUNC(HelloLayer);<\/p>\n<p>\/\/ \u624b\u5de5\u91ca\u653e\u6389ccb\u7ed1\u5b9a\u7684\u5bf9\u8c61<\/p>\n<p>~HelloLayer(){<\/p>\n<p>CC_SAFE_RELEASE(testTTF);<\/p>\n<p>}<\/p>\n<p>};<\/p>\n<p>void HelloLayer::pressedClickme(CCObject* target, CCControlEvent *event){<\/p>\n<p>CCLog(&#8220;clicked pressed click me&#8221;);<\/p>\n<p>CCLog(&#8220;ttf text:%s&#8221;,testTTF-&gt;getString());<\/p>\n<p>}<\/p>\n<p>bool HelloLayer::init(){<\/p>\n<p>if(!CCLayer::init()){<\/p>\n<p>CCLog(&#8220;invoke hello layer init return false&#8221;);<\/p>\n<p>return false;<\/p>\n<p>}<\/p>\n<p>CCLog(&#8220;invoke hello layer init return true&#8221;);<\/p>\n<p>return true;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>SEL_MenuHandler HelloLayer::onResolveCCBCCMenuItemSelector(CCObject * pTarget, CCString * pSelectorName){<\/p>\n<p>\/\/CCB_SELECTORRESOLVER_CCMENUITEM_GLUE(this, &#8220;pressedClickme&#8221;, HelloLayer::pressedClickme);<\/p>\n<p>return NULL;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>SEL_CCControlHandler HelloLayer::onResolveCCBCCControlSelector(CCObject* pTarget, CCString* pSelectorName){<\/p>\n<p>CCB_SELECTORRESOLVER_CCCONTROL_GLUE(this, &#8220;pressedClickme&#8221;, HelloLayer::pressedClickme);<\/p>\n<p>return NULL;<\/p>\n<p>}<\/p>\n<p>bool HelloLayer::onAssignCCBMemberVariable(CCObject * pTarget, CCString * pMemberVariableName, CCNode * pNode){<\/p>\n<p>CCB_MEMBERVARIABLEASSIGNER_GLUE(this, &#8220;testTTF&#8221;, CCLabelTTF*, testTTF);<\/p>\n<p>return false;<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>void HelloLayer::onNodeLoaded(CCNode * pNode, CCNodeLoader * pNodeLoader){<\/p>\n<p>CCLog(&#8220;on node loaded&#8221;);<\/p>\n<p>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6700\u5c0f\u7684\u96c6\u6210\uff1a \u9700\u8981\u81ea\u5b9a\u4e49loader: class MyCustomCCLaye &hellip;<\/p>\n<p class=\"read-more\"><a href=\"http:\/\/blog.zhukunqian.com\/?p=605\">\u7ee7\u7eed\u9605\u8bfb &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.zhukunqian.com\/index.php?rest_route=\/wp\/v2\/posts\/605"}],"collection":[{"href":"http:\/\/blog.zhukunqian.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.zhukunqian.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.zhukunqian.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.zhukunqian.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=605"}],"version-history":[{"count":2,"href":"http:\/\/blog.zhukunqian.com\/index.php?rest_route=\/wp\/v2\/posts\/605\/revisions"}],"predecessor-version":[{"id":607,"href":"http:\/\/blog.zhukunqian.com\/index.php?rest_route=\/wp\/v2\/posts\/605\/revisions\/607"}],"wp:attachment":[{"href":"http:\/\/blog.zhukunqian.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=605"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.zhukunqian.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=605"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.zhukunqian.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=605"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}