關于控件使用時的一些配置,請參見文章:UI開發之控件類-CCControlButton。這里只寫出源代碼,里邊的注釋對控件的用法有詳細的介紹。
bool HelloWorld::init(){ bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //設置一個顯示字符串的label CCLabelTTF * title = CCLabelTTF::create("slider value = 0.00","Arial",32); title->setPosition(ccp(240,200)); //設置label的tag為1,方便以后獲取 this->addChild(title,0,1); //這三張圖片分別是底部,進度條,控制按鈕 CCControlSlider * slider = CCControlSlider::create("sliderTrack.png","sliderProgress.png", "sliderThumb.png"); //設置slider的最大值最小值 slider->setMaximumValue(100); slider->setMinimumValue(0); //為slider添加事件監聽函數 slider->addTargetWithActionForControlEvents(this,cccontrol_selector(HelloWorld::valueChanged), CCControlEventValueChanged); //設置位置 slider->setPosition(ccp(240,160)); this->addChild(slider); //使用CCControlSlider實現血量條,只要將第三個控制按鈕改為透明的就可以了,就會貌似血量條了 CCControlSlider * slider2 = CCControlSlider::create("sliderTrack.png","progress.png","sliderThumb2.png"); //通過以下函數使得認為的不能改變它的值 slider2->setTouchEnabled(false); slider2->setMaximumValue(100); slider2->setMinimumValue(0); //可以添加事件處理函數,在事件處理函數中改變它的value slider2->setValue(100); slider2->setPosition(ccp(240,100)); this->addChild(slider2); bRet = true; } while (0); return bRet;}//注意這個函數需要傳入的倆個參數類型void HelloWorld::valueChanged(CCObject * pSender,CCControlEvent controlEvent) { CCControlSlider * slider = (CCControlSlider *)pSender; CCLabelTTF * title = (CCLabelTTF *)this->getChildByTag(1); //使用CCLabelTTF的時候盡量不要重新改變它的內容,這里是為了簡便起見 title->setString(CCString::createWithFormat("slider value = %0.02f",slider->getValue())->getCString()); }
新聞熱點
疑難解答
圖片精選