cocos2d-x 공부용2014. 8. 1. 14:07

 CCControlSlider 滑块的简单实用

贴码:

HelloWorld.h

private:
    HelloWorld();
    ~HelloWorld();
    //slider lable show
    CCLabelTTF* m_pDisplayValueLabel;
    void valueChanged(CCObject *sender, CCControlEvent controlEvent);

HelloWorld.cpp

复制代码
HelloWorld::HelloWorld()
{

}

HelloWorld::~HelloWorld()
{
    CC_SAFE_RELEASE_NULL(m_pDisplayValueLabel);
}

CCScene* HelloWorld::scene()
{
    // 'scene' is an autorelease object
    CCScene *scene = CCScene::create();
    
    // 'layer' is an autorelease object
    HelloWorld *layer = HelloWorld::create();

    // add layer as a child to scene
    scene->addChild(layer);

    // return the scene
    return scene;
}

bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }
        CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
    CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
     
        //03 Slider
        //create a show label
    m_pDisplayValueLabel = CCLabelTTF::create("Move the slider thumb!\nThe lower slider is restricted.", "Arial", 24);
    m_pDisplayValueLabel->retain();
    m_pDisplayValueLabel->setPosition(ccp(visibleSize.width*0.5f, visibleSize.height*0.3f));
    this->addChild(m_pDisplayValueLabel);
        //create a slider
    CCControlSlider* slider = CCControlSlider::create(
        "slider/sliderTrack.png", "slider/sliderProgress.png", 
        "slider/sliderThumb.png");
    slider->setPosition(ccp(visibleSize.width*0.5f, visibleSize.height*0.25f));
    slider->setMinimumValue(0.0f);
    slider->setMaximumValue(5.0f);
    this->addChild(slider);
    slider->addTargetWithActionForControlEvents(this, 
        cccontrol_selector(HelloWorld::valueChanged), CCControlEventValueChanged);
  return true;
}
void HelloWorld::valueChanged(CCObject *sender, CCControlEvent controlEvent)
{
    CCControlSlider* pSlider = (CCControlSlider*)sender;
    m_pDisplayValueLabel->setString(CCString::createWithFormat("Upper slider value = %.02f", pSlider->getValue())->getCString());
}


Posted by 아이시네프