千家信息网

cocos2dx中滑块控件CCControlSlider怎么用

发表于:2025-11-19 作者:千家信息网编辑
千家信息网最后更新 2025年11月19日,这篇文章给大家分享的是有关cocos2dx中滑块控件CCControlSlider怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。【CCControlSlider】滑块
千家信息网最后更新 2025年11月19日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安全错误 数据库的锁怎样保障安全 国家网络安全宣传周河北将举办 滁州手机软件开发公司哪家好 mysql数据库查看表的字符集 骨密度软件开发 商品信息数据库创建 北京现代软件开发收购价格 家用服务器电源选购 什么依照网络安全法 图书馆外文文献索引型数据库 武汉大学网络安全本科生培养计划 秦农银行软件开发岗社招笔试 先进软件开发技术与工具 数据库两个字段设置唯一索引 保定 软件开发 招聘 软件开发岗的面试题 妇产科医院软件开发 新建员工工资数据库 外包软件开发步骤是什么 河北专业软件开发服务有哪些 国土调查数据库更新规范 连接安全验证服务器失败怎么办 江北一站式软件开发项目管理 网络安全产品测评 学习网络安全专业的书籍 互联网数字科技的发展 深圳电商软件开发联系方式 u8加密服务器配置 小程序连接数据库视频 数据库 虚读 桌面显示无法连接到服务器咋操作
0