声 明 本教程仅用于初学cocos2dx同学使用,内容由本人(孤狼)学习过程中笔记编写,本教程使用cocos2dx版本为2.1.4。本教程内容可以自由转载,但必须同时附带本声明,或注明出处。 gl.paea.cn版权所有。 |
大家好,欢迎回到“和屌丝一起学cocos2dx”系列教程,上节课我们说到了CCEditBox控件,不知道大家现在掌握的怎么样了,有没有做出来呢?哈哈,估计都做出来了吧,好了这节我们说一下一个新的控件--CCControlSwitch。
老规矩,来新建个项目叫Controlswitchdemo。
【一】:创建
controlswitch的创建方式有两种,我们来分别看下。
1.CCControlSwitch::create("底图CCSprite对象","打开状态CCSprite对象","关闭状态CCSprite对象","拨动开关CCSprite对象");
2.CCControlSwitch::create("底图CCSprite对象","打开状态CCSprite对象","关闭状态CCSprite对象","拨动开关CCSprite对象","打开状态CCLabelTTF对象","关闭状态CCLabelTTF对象");
【二】:函数
1.setOn //设置开关状态
2.IsOn //获取开关状态
3.hasMoved //获取当前开关是否为手动拨动开关(其别与点击拨动)
4.setEnabled //设置开关是否能操作
【三】:示例
Controlswitch.h文件
1.包含cocos-ext.h文件 #include "cocos-ext.h"
2.引用命名空间extension using namespace cocos2d::extension;
Controlswitch.cpp文件
1.引用命名空间extension using namespace extension;
2.导入图片,这里我给大家准备好了4张图片。
3.写上代码。
/*CCSprite * spritbg=CCSprite::create("bg.png");
CCSprite * spriton=CCSprite::create("on.png");
CCSprite * spritoff=CCSprite::create("off.png");
CCSprite * spritthumb=CCSprite::create("thumb.png");
CCLabelTTF * ttfon=CCLabelTTF::create("on","Arial",14);
CCLabelTTF * ttfoff=CCLabelTTF::create("off","Arial",14);
CCControlSwitch * mycontrolswith=CCControlSwitch::create(spritbg,spriton,spritoff,spritthumb,ttfon,ttfoff);*/
CCControlSwitch * mycontrolswith=CCControlSwitch::create(
CCSprite::create("bg.png"),
CCSprite::create("on.png"),
CCSprite::create("off.png"),
CCSprite::create("thumb.png")
);
mycontrolswith->setPosition(ccp(mysize.width/2,mysize.height/2));
mycontrolswith->setOn(true);
this->addChild(mycontrolswith,0);
4.运行。这里我们看到功能已经出来了,但是图片却都被覆盖了,问题原因还没找到,等待后面找到后发布。
2013/07/11 更新:
已经经过测试表明,出现背景图覆盖的原因是2.1.4版本的问题,低版本均未出现该现象。
2013/08/24 更新:
2.1.5版本已经解决了不显示的bug,跳转地址 2.1.5-孤狼优化版