cocos2d menu菜单类

// 在init这个函数当中做一些初始化的事情
bool HelloWorld::init()
{
    //////////////////////////////
    // 先构造父级对象
    if ( !CCLayer::init() )
    {
        return false;
    }
    
    CCSize size=CCDirector::sharedDirector()->getWinSize();

    //创建一个label以后就不能再设置位置,有可能会超出屏幕,
    //这个label不能添加到this当中
    CCLabelTTF *label1=CCLabelTTF::create("lalal","consola",25);
    label1->setColor(ccc3(255,255,0));
    CCMenuItemLabel* menuitemLabel=CCMenuItemLabel::create(label1,this,menu_selector(HelloWorld::menuCallback));
    menuitemLabel->setPosition(ccp(size.width*0.5,size.height*0.9));


    CCMenuItemFont* menuitemFont=CCMenuItemFont::create("lala",this,menu_selector(HelloWorld::menuCallback));
    menuitemFont->setPosition(ccp(size.width*0.5,size.height*0.7));
    

    //如果是一个重复使用的图片,最好还是创建成为缓存帧,这样可以减少渲染的次数。
    //但是如果是一个两张图片,如果创建成为缓存帧的话,占了内存,导致游戏效率下降。
    CCSprite* sprite1=CCSprite::create("1.png");
    sprite1->setScale(0.2);
    CCSprite* sprite2=CCSprite::create("2.png");
    sprite2->setScale(0.2);
    CCMenuItemSprite *menuitemSprite=CCMenuItemSprite::create(sprite1,sprite2,this,menu_selector(HelloWorld::menuCallback));
    menuitemSprite->setPosition(ccp(size.width*0.5,size.height*0.5));
    

    CCMenuItemToggle* menuitemToggle=CCMenuItemToggle::createWithTarget(this,menu_selector(HelloWorld::menuCallback),CCMenuItemFont::create("ON"),CCMenuItemFont::create("OFF"),NULL);
    menuitemToggle->setPosition(ccp(size.width*0.5,size.height*0.3));


    CCMenu* menu=CCMenu::create(menuitemLabel,menuitemFont,menuitemSprite,menuitemToggle,NULL);
    menu->setPosition(CCPointZero);
    this->addChild(menu);

    return true;
}


void HelloWorld::menuCallback(CCObject* pSender)
{
    CCLOG("lalala");
}
原文地址:https://www.cnblogs.com/yufenghou/p/3613370.html