cocos2d-x拖动滑块控件CCControlSlider

#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);   //输出此时滑块所在位置代表的值
}                                                                                                                                                         

实现的效果:cocos2d-x拖动滑块控件CCControlSlider_第1张图片

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

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

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



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

你可能感兴趣的:(cocos2d-x)