加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Cocos2d-X中SwitchControl的用法

发布时间:2020-12-14 19:06:33 所属栏目:百科 来源:网络整理
导读:SwitchControl控件起到了一个开关的作用类似于现实生活中的开关 由于控件比较简单,我就不做过多的解释,直接上代码 首先在工程目录下的Resource文件夹中添加三张图片 在SwitchControl.h添加下面代码 #ifndef _SwitchControl_H_#define _SwitchControl_H_#in

SwitchControl控件起到了一个开关的作用类似于现实生活中的开关

由于控件比较简单,我就不做过多的解释,直接上代码


首先在工程目录下的Resource文件夹中添加三张图片


在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",16);
	
    //设置ControlSwitch控件打开的文字的颜色
    on->setColor(ccc3(0,0));

    //设置ControlSwitch控件关闭时的颜色
	off->setColor(ccc3(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");
	}
}

执行结果:


演示效果:


??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读