您的位置:首页 > 移动开发 > Cocos引擎

cocos2d-x 开关按钮 三态按钮 的实现 CCMenuItemToggle

2013-11-13 18:00 453 查看


一.废话少说,先上效果图:







二.实现过程:

1.创建CCMenuItemToggle对象:

C++

12345CCMenuItemImage *btnOn =CCMenuItemImage::create("soundon.png" ,"soundoff.png"); CCMenuItemImage *btnOff=CCMenuItemImage::create("soundoff.png","soundon.png"); CCMenuItemToggle *btnSnd =CCMenuItemToggle::createWithTarget(this,menu_selector(GameLayer::onMusicEnable),btnOn, btnOff,NULL);

2.添加到CCMenu中:

C++

1

2

3

CCMenu*pMenu=CCMenu::create(btnSnd,NULL);

pMenu->setPosition(CCPointZero);

this->addChild(pMenu);

3.响应代码:

C++

12345void GameLayer::onMusicEnable( cocos2d::CCObject* pObj ){ CCMenuItemToggle *toggleItem = (CCMenuItemToggle *)pObj; CCLog("%d",toggleItem->getSelectedIndex());}

三.其他

1.调用CCMenuItemToggle::createWithTarget (…)状态:

获得:

C++

1

2

3

4

5

6

7

8

9

10

intnID=toggleItem->getSelectedIndex();

swith(nID)

{

case0:

//...

break;

case1:

//...

break;

}

设置:

C++

1

2

toggleItem->setSelectedIndex(1);

toggleItem->setSelectedIndex(2);

2.三态按钮也可以采用类似的方法实现,CCMenuItemToggle::createWithTarget()一次传入3种状态,点击后会自动1-2-3-1这样切换 .

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: