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

cocos2d-x 切换两个菜单项 不用MenuItemToggle

2015-07-30 15:09 567 查看
#ifndef __TOGGLETEST2_SCENE_H__
#define __TOGGLETEST2_SCENE_H__

#include "cocos2d.h"

class ToggleTest2 : public cocos2d::LayerColor
{
public:
static cocos2d::Scene* createScene();
CREATE_FUNC(ToggleTest2);

private:
virtual bool init();
void callBack();

public:

private:
bool isSound = true;
cocos2d::MenuItemSprite *soundItem;

};

#endif // __TOGGLETEST2_SCENE_H__
#include "ToggleTest2.h"

USING_NS_CC;

Scene* ToggleTest2::createScene()
{
auto scene = Scene::create();

auto layer = ToggleTest2::create();

scene->addChild(layer);

return scene;
}

bool ToggleTest2::init()
{
//白色背景
if(!LayerColor::initWithColor(Color4B::WHITE))
{
return false;
}

Size vSize = Director::getInstance()->getVisibleSize();

Sprite *soundOn = Sprite::create("Sound_on.png");

soundItem = MenuItemSprite::create(soundOn, soundOn, CC_CALLBACK_0(ToggleTest2::callBack, this));
soundItem->setPosition(vSize / 2);

Menu *menu = Menu::create(soundItem, nullptr);
menu->setPosition(Vec2::ZERO);
this->addChild(menu);

return true;
}

void ToggleTest2::callBack()
{
//声音开启 或者 声音关闭
if(isSound)
{
Sprite *soundOff = Sprite::create("Sound_off.png");
soundItem->setNormalImage(soundOff);
soundItem->setSelectedImage(soundOff);
}
else
{
Sprite *soundOn = Sprite::create("Sound_on.png");
soundItem->setNormalImage(soundOn);
soundItem->setSelectedImage(soundOn);
}

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