More Related Content
Similar to コードしか書けないエンジニアがゲームを作るには。みんなで作る:ccocos2d-xゲーム開発
Similar to コードしか書けないエンジニアがゲームを作るには。みんなで作る:ccocos2d-xゲーム開発 (20)
コードしか書けないエンジニアがゲームを作るには。みんなで作る:ccocos2d-xゲーム開発
- 9. こんな具合
class CCTestLayer : public cocos2d::CCLayer, public cocos2d::extension::CCBSelectorResolver
{
virtual cocos2d::SEL_MenuHandler onResolveCCBCCMenuItemSelector(CCObject * pTarget, cocos2d::CCString *
pSelectorName);
virtual cocos2d::extension::SEL_CCControlHandler onResolveCCBCCControlSelector(cocos2d::CCObject * pTarget,
cocos2d::CCString * pSelectorName);
void menuTapped(CCObject *pSender, cocos2d::extension::CCControlEvent pCCControlEvent);
public:
CREATE_FUNC(CCTestLayer);
};
class TestBuilderLoader : public cocos2d::extension::CCLayerLoader {
public:
CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(TestBuilderLoader, loader);
protected:
CCB_VIRTUAL_NEW_AUTORELEASE_CREATECCNODE_METHOD(CCTestLayer);
};
- 10. SEL_MenuHandler CCTestLayer::onResolveCCBCCMenuItemSelector(CCObject * pTarget, CCString * pSelectorName)
{
CCB_SELECTORRESOLVER_CCMENUITEM_GLUE(this, "menuTapped", CCTestLayer::menuTapped);
return NULL;
}
void CCTestLayer::menuTapped(CCObject *pSender, CCControlEvent pCCControlEvent) {
CCLOG("button tapped");
}
SEL_CCControlHandler CCTestLayer::onResolveCCBCCControlSelector(CCObject *pTarget, CCString*pSelectorName) {
return NULL;
}
CCNodeLoaderLibrary * ccNodeLoaderLibrary = CCNodeLoaderLibrary::newDefaultCCNodeLoaderLibrary();
ccNodeLoaderLibrary->registerCCNodeLoader("CCTestLayer", TestBuilderLoader::loader());
CCBReader * ccbReader = new CCBReader(ccNodeLoaderLibrary);
CCNode* node = ccbReader->readNodeGraphFromFile("CCTestLayer.ccbi");
CCScene * scene = CCScene::create();
if(node != NULL) {
scene->addChild(node);
}
ccbReader->release();
CCDirector::sharedDirector()->runWithScene(scene);
- 15. 短く。
class CCTestLayer : public cocos2d::CCLayer, CCB_ASSING_RESOLVERS
{
public:
CREATE_FUNC(CCTestLayer);
private:
CCPointer<CCMenu> menuTapped;
};
※自動生成コードはありますが、
見る必要がないので隠蔽してあります。