Ryusuke Fuda's Tech Blog

Softweare Enginier about Web, iOS, Android.

cocos2dx メニューボタン

ゲームのスタート画面などにボタンを簡単における
最初知らずにTouchBeganとか使ってたので、もっと早く知りたかった…
コールバックのように使えるのでかなり使いやすい。

■ CCMenu を使う

CCScene* StartLayer::scene()
{
    CCScene *scene = CCScene::create();
    StartLayer *layer = StartLayer::create();
    scene->addChild(layer);
    return scene;
}

bool StartLayer::init()
{
    if(CCLayer::init()){
        CCSize winSize = CCDirector::sharedDirector()->getWinSize();
        
        CCSprite* background = CCSprite::create("Background.png");
        background->setPosition(CCPointMake(winSize.width * 0.5, winSize.height * 0.5));
        this->addChild(background);
        
        CCMenuItemImage *pStartItem = CCMenuItemImage::create(
                                                               "start.png",
                                                               "startSelected.jpg",
                                                               this,
                                                               menu_selector(StartLayer::
                                                                             menuStartCallback));
        pStartItem->setPosition(ccp(winSize.width * 0.1, winSize.height * 0.6));
        
        CCMenu* pMenu = CCMenu::create(pStartItem, NULL);
        pMenu->setPosition(CCPointZero);
        this->addChild(pMenu);
        
        return true;
    }
    return false;
}

void StartLayer::menuStartCallback(CCObject* pSender)
{
    //クリック後の処理
    SceneManager::goPlay(kSceneTagMainGame);
}

参考)
http://gaomar.blog.fc2.com/blog-entry-56.html