SwitchControl控制类中的一个开关的发挥了作用似在现实生活中开关

因为控制相对简单,我没有做过多的解释。直接在代码


首先在project文件夹下的Resource文件夹中加入三张图片

Cocos2d-X在SwitchControl使用_#include

Cocos2d-X在SwitchControl使用_#include_02

Cocos2d-X在SwitchControl使用_#ifndef_03


在SwitchControl.h加入以下代码

#ifndef   _SwitchControl_H_
#define _SwitchControl_H_

#include "cocos2d.h"
#include "cocos-ext.h"
USING_NS_CC;
USING_NS_CC_EXT;

class SwitchControl : public CCLayer
{
public:
static CCScene* scene();
CREATE_FUNC(SwitchControl);
bool init();
void switchValueChanged(CCObject*, CCControlEvent);
};

#endif



在SwitchControl.cpp中加入以下代码

#include "SwitchControl.h"

CCScene* SwitchControl::scene()
{
CCScene* s = CCScene::create();
SwitchControl* layer = SwitchControl::create();
s->addChild(layer);
return s;
}

bool SwitchControl::init()
{
CCLayer::init();

//得到窗体的大小
CCSize winSize = CCDirector::sharedDirector()->getWinSize();

//设置ControlSwitch控件打开的文字No"
CCLabelTTF* on = CCLabelTTF::create("ON", "Arial", 16);

//设置ControlSwitch控件关闭时的文字"OFF"
CCLabelTTF* off = CCLabelTTF::create("OFF", "Arial", 16);

//设置ControlSwitch控件打开的文字的颜色
on->setColor(ccc3(0, 0, 0));

//设置ControlSwitch控件关闭时的颜色
off->setColor(ccc3(0, 0, 0));

//创建ControlSwitch控件
CCControlSwitch* control = CCControlSwitch::create(
CCSprite::create("switch-mask.png"),
CCSprite::create("switch-on.png"),
CCSprite::create("switch-off.png"),
CCSprite::create("switch-thumb.png"),
on,
off);

//加入ControlSwitch控件
addChild(control);

//设置ControlSwitch控件的位置
control->setPosition(ccp(winSize.width / 2, winSize.height / 2));

// 注冊valuechange消息,当valuechange时。调用switchValueChanged函数
control->addTargetWithActionForControlEvents(this,
cccontrol_selector(SwitchControl::switchValueChanged),
CCControlEventValueChanged);

return true;
}

void SwitchControl::switchValueChanged(CCObject* sender, CCControlEvent ev)
{
if (ev == CCControlEventValueChanged)
{
CCControlSwitch* control = (CCControlSwitch*)sender;
if (control->isOn())
{
CCLog("Switch if ON");
}
else
{
CCLog("Swith is Off");
}
}
else
{
CCLog("other events");
}
}


运行结果:

Cocos2d-X在SwitchControl使用_#include_04


演示效果:

Cocos2d-X在SwitchControl使用_2d_05