Cocos2d-x ——菜单层(CCMenuItemLabel) 一

来源:互联网 发布:python csv数据处理 编辑:程序博客网 时间:2024/05/22 06:27

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);

    

}