cocos2d-x拖动滑块控件CCControlSlider

本文介绍了如何使用cocos2d-x的CCControlSlider控件来实现拖动滑块和比例条的效果。通过调整滑动按钮的透明度和位置,可以创建比例条。此外,还探讨了利用两个进度图片或直接设置覆盖图片显示范围作为更简单的比例条实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include "GameMusicSetting.h"
bool GameMusicSetting::init()
{
    if(!CCLayer::init())
    {
        return false;
    }
    CCSize size=CCDirector::sharedDirector()->getWinSize();
    //参数分别为:滑道图片,滑块滑动后滑道覆盖图片,滑块图片
    CCControlSlider *slider=CCControlSlider::create("bg_ScrollBtn.png", "value_ScrollBtn.png", "bar_ScrollBtn.png");
    slider->setMinimumAllowedValue(0);  //设置滑块设置的最小值
    slider->setMaximumAllowedValue(5);
    slider->setAnchorPoint(ccp(0.5,1));
    slider->setPosition(ccp(size.width/2, size.height/2));
    //设置滑块滑动后的回调函数
    slider->addTargetWithActionForControlEvents(this,cccontrol_selector(GameMusicSetting::callback),CCControlEventValueChanged);
    addChild(slider,1);
    
    return true;
}
//注意:由于当滑动条值改变时,就会调用这个函数,所有,如果是在本机文件中需要记录这个值的话,那么最好不要在这里对文件进行读写,而是通过仅在此改变成员变量的值
//在这个类结束时,再进行文件的写入操作,否则,频繁的读写,只能造成滑动条的卡顿,甚至程序的崩溃。
void GameMusicSetting::callback(CCObject *sender, CCControlEvent controlEvent)
{
    CCControlSlider * pslider=(CCControlSlider *)sender;
    CCLOG("%f",pslider->getValue()*5);   //输出此时滑块所在位置代表的值
}                                                                                                                                                         

实现的效果:

        同理,如果要实现比例条,也完全可以采用此控件,只不过是把滑动按钮设置成透明的,直接设置滑块按钮的位置,这样,就可以达到显示比例的效果。

        当然,这也不是最简单的方法,最简单的比例条可以通过两个进度图片来实现,直接设置覆盖图片的y轴的显示比例,使其覆盖底层的被覆盖的图片,即可实现显示比例条的效果,并且比前一种方法更好。

        另外,通过setTextureRect直接设置覆盖图片的显示范围,也能达到很好的比例条显示效果。



欢迎转载,转载请注明出处:http://blog.csdn.net/somestill/article/details/10075861

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值