Cocos2d-x ——菜單層(CCMenuItemLabel) 一

CCMenuItemLabel就是將一個CCLabel轉換成一個CCMenuItem。

static CCMenuItemLabel *create(CCNode *label,CCobject *target,SEL_MenuHandler selector);

在聲明中,我們只需要提前創建好一個CCLabel,之後將這個Label作爲一個參數放到create方法中,就可以將它變成一個按鈕,第二個參數是按鈕調用方法類的指針。第三個參數是一個selector類型的參數,用來當我們按下按鈕之後調用相應的方法。

例:

.h文件

void menuFun(CCObject *pSence);//參數是菜單項。


.cpp文件

boolHelloWorld::init()

{

       if ( !CCLayer::init() )

    {

        returnfalse;

    }


    CCSprite *spr=CCSprite::create("Icon-72.png");

    spr->setPosition(ccp(100,200));

    spr->cocos2d::CCNode::setVisible(false);//設置不顯示精靈

   this->addChild(spr,01);

    

   CCLabelTTF *abelttf=CCLabelTTF::create("顯示精靈","Thonburi"48);

    //創建菜單項。

   /*第一個參數是顯示的文本,第二個參數是對應哪個層,一般都是用this

     第三個參數是當我們按下按鈕之後調相應的方法。

     */

    

    CCMenuItemLabel *item=CCMenuItemLabel::create(abelttf,thismenu_selector(HelloWorld::menuFun));

   CCMenu *menu=CCMenu::create(item,NULL);

    menu->setPosition(ccp(100,100));

   this->addChild(menu);

    

    

    

       return true;

}

voidHelloWorld::menuFun(CCObject *pSence)

{

   CCSprite *spr=(CCSprite*)this->getChildByTag(1);

   if (spr->isVisible())

    {

        spr->setVisible(false);

    }

   else

        spr->setVisible(true);

    

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章