千家信息网

cocos2dx中滑块控件CCControlSlider怎么用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关cocos2dx中滑块控件CCControlSlider怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。【CCControlSlider】滑块
千家信息网最后更新 2026年11月03日cocos2dx中滑块控件CCControlSlider怎么用

这篇文章给大家分享的是有关cocos2dx中滑块控件CCControlSlider怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

【CCControlSlider】

滑块控件CCControlSlider,应该也是很常见的UI控件,想必大家都不陌生。

比如调节音量的大小:

1、CCControl主要向滑块类CCControlSlider提供了以下控件事件

//        CCControlEventValueChanged //当控件的值发生改变时触发。//

2、绑定控件事件的方法

//        //绑定控件事件        //addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::valueChanged), CCControlEventValueChanged);        void addTargetWithActionForControlEvents(CCObject* target, SEL_CCControlHandler action, CCControlEvent controlEvents);                 //删除控件事件        //removeTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::valueChanged), CCControlEventValueChanged);        void removeTargetWithActionForControlEvents(CCObject* target, SEL_CCControlHandler action, CCControlEvent controlEvents);//

3、需要引用一下的文件及命名空间

//        #include "cocos-ext.h"              //包含cocos-ext.h头文件        using namespace cocos2d::extension; //引用cocos2d::extension命名空间//

4、常用操作

//class CCControlSlider: public CCControl{/** *         创建CCControlSlider的两种方式 */        //用CCSprite精灵创建滑块控件        //create("滑块背景图", "划过区域图", "滑块图");        static CCControlSlider* create(CCSprite* backgroundSprite, CCSprite* pogressSprite, CCSprite* thumbSprite);        //直接用图片资源名创建,省去了创建精灵的步骤        //实际上,在其内部依旧是调用上面的create函数创建CCSprite精灵        //create("滑块背景图", "划过区域图", "滑块图");        static CCControlSlider* create(const char* bgFile, const char* progressFile, const char* thumbFile);/** *         属性设置 *         setValue ,  *         setMinimumValue , setMaximumValue *         setMinimumAllowedValue , setMaximumAllowedValue , *         setBackgroundSprite , setProgressSprite , setThumbSprite */        float setValue() | getValue(); //设置当前滑块的值        float setMinimumValue() | getMinimumValue(); //设置滑块最小值        float setMaximumValue() | getMaximumValue(); //设置滑块最大值        float setMinimumAllowedValue() | setMinimumAllowedValue(); //设置允许滑动的最小值        float setMaximumAllowedValue() | setMaximumAllowedValue(); //设置允许滑动的最大值        //设置滑块的背景图、划过区域图、滑块图        //CC_SYNTHESIZE_RETAIN为宏定义:除了创建了set/get以外,还用了retain来保留内存资源。        CC_SYNTHESIZE_RETAIN(CCSprite*, m_backgroundSprite, BackgroundSprite);        CC_SYNTHESIZE_RETAIN(CCSprite*, m_progressSprite, ProgressSprite);        CC_SYNTHESIZE_RETAIN(CCSprite*, m_thumbSprite, ThumbSprite);};//

5、滑块的值、最值、允许最值解析

假设滑块的属性值设置如下:

Value = 40;

MinimumValue = 0; MaximumValue = 100;

MinimumAllowedValue = 20; MaximumAllowedValue = 80;

那么滑块只能在Allowed的最小值和最大值之间滑动,即[20,80]的数值之间滑动。


【代码实战】

1、资源图片

为何上传的PNG图片好像在博文上显示就变样了呢?说好的透明背景呢?

2、引入文件和命名空间

//        #include "cocos-ext.h"              //包含cocos-ext.h头文件        using namespace cocos2d::extension; //引用cocos2d::extension命名空间//

3、在HelloWorld.h中声明控件回调函数、显示滑块数值的Label

//        CCLabelTTF* label; //显示滑块数值的Label        void valueChanged(CCObject* sender, CCControlEvent controlEvent); //当值改变时触发的控件事件//

4、在HelloWorld.cpp中创建滑块控件,并绑定ValueChanged控件事件

////创建显示Slider值的标签        label = CCLabelTTF::create("50.0", "Arial", 32);        label->setPosition( midPos + ccp(0, 100) );        this->addChild(label);//创建滑块控件CCControlSlider        CCControlSlider* slider = CCControlSlider::create("sliderTrack.png", "sliderProgress.png", "sliderThumb.png");        slider->setPosition( midPos );        this->addChild(slider);        //设置属性        slider->setMinimumValue(0);         //设置滑块最小值        slider->setMaximumValue(100);       //设置滑块最大值        slider->setMinimumAllowedValue(20); //设置允许滑动的最小值        slider->setMaximumAllowedValue(80); //设置允许滑动的最大值        slider->setValue(50);               //设置当前滑块的值        //绑定事件,当滑块的值改变时触发控件事件        slider->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::valueChanged), CCControlEventValueChanged);//

5、实现控件回调函数

//        //事件响应函数,值改变时,修改label标签的内容        void HelloWorld::valueChanged(CCObject* sender, CCControlEvent controlEvent)        {                //获取事件委托者:滑块控制CCControlSlider                CCControlSlider* slider = (CCControlSlider*)sender;                //修改label的值,显示滑块的当前值                //sprintf为C语言中的字符串格式转换,这里将float转换为字符串                char str[50];                sprintf(str, "%f", slider->getValue() );  //字符串格式转换                label->setString(str);        }//

6、运行结果

感谢各位的阅读!关于"cocos2dx中滑块控件CCControlSlider怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

控件 事件 最大 最小 最大值 函数 文件 空间 背景 内容 区域 图片 字符 字符串 属性 数值 精灵 资源 之间 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海喔噻互联网科技有限公司 深圳九邦互联网科技有限公司 中关村互联网 科技集团 北京路客互联网科技有限公司 互联网金融监管科技数据 善班互联网科技 亿策互联网科技 壕鑫互联网络科技 互联网科技上市公司 亿人帮互联网科技 互联网科技宣传片 互联网 科技服务平台 互联网时代科技改变生活 广州恒生互联网科技有限 开一家科技互联网公司需要多少钱 中国互联网十大科技股排名 银川新华互联网科技学校原画 互联网科技品牌 陕西彩京云互联网科技有限公司 上海旺乐尼互联网科技有限公司 科技平台互联网 科技互联网项目 港股互联网科技股 深圳互联网络科技有限公司 鑫亿盛互联网科技 新兴科技互联网创新大赛颁奖典礼 乌苏新华互联网科技做什么的 互联网科技包装股份有限公司上市 广州梦谷互联网科技有限公司领导 优雇互联网科技有限公司
0