服务器之家

服务器之家 > 正文

Cocos2d-x UI开发之CCControlSlider控件类使用实例

时间:2021-02-01 14:19     来源/作者:皂荚花

关于控件使用时的一些配置,请参见文章:UI开发之控件类-CCControlButton。这里只写出源代码,里边的注释对控件的用法有详细的介绍。

  1. bool HelloWorld::init() 
  2.   bool bRet = false
  3.   do 
  4.   { 
  5.     CC_BREAK_IF(! CCLayer::init()); 
  6.  
  7.         //设置一个显示字符串的label 
  8.         CCLabelTTF * title = CCLabelTTF::create("slider value = 0.00","Arial",32); 
  9.         title->setPosition(ccp(240,200)); 
  10.         //设置label的tag为1,方便以后获取 
  11.         this->addChild(title,0,1); 
  12.  
  13.         //这三张图片分别是底部,进度条,控制按钮 
  14.         CCControlSlider * slider = CCControlSlider::create("sliderTrack.png","sliderProgress.png"
  15.             "sliderThumb.png"); 
  16.  
  17.         //设置slider的最大值最小值 
  18.         slider->setMaximumValue(100); 
  19.         slider->setMinimumValue(0); 
  20.         //为slider添加事件监听函数 
  21.         slider->addTargetWithActionForControlEvents(this,cccontrol_selector(HelloWorld::valueChanged), 
  22.             CCControlEventValueChanged); 
  23.         //设置位置 
  24.         slider->setPosition(ccp(240,160)); 
  25.         this->addChild(slider); 
  26.  
  27.         //使用CCControlSlider实现血量条,只要将第三个控制按钮改为透明的就可以了,就会貌似血量条了 
  28.         CCControlSlider * slider2 = CCControlSlider::create("sliderTrack.png","progress.png","sliderThumb2.png"); 
  29.         //通过以下函数使得认为的不能改变它的值 
  30.         slider2->setTouchEnabled(false); 
  31.         slider2->setMaximumValue(100); 
  32.         slider2->setMinimumValue(0); 
  33.         //可以添加事件处理函数,在事件处理函数中改变它的value 
  34.         slider2->setValue(100); 
  35.         slider2->setPosition(ccp(240,100)); 
  36.         this->addChild(slider2); 
  37.  
  38.     bRet = true
  39.   } while (0); 
  40.  
  41.   return bRet; 
  42.  
  43. //注意这个函数需要传入的俩个参数类型 
  44. void HelloWorld::valueChanged(CCObject * pSender,CCControlEvent controlEvent) 
  45.  { 
  46.     CCControlSlider * slider = (CCControlSlider *)pSender; 
  47.     CCLabelTTF * title = (CCLabelTTF *)this->getChildByTag(1); 
  48.     //使用CCLabelTTF的时候尽量不要重新改变它的内容,这里是为了简便起见 
  49.     title->setString(CCString::createWithFormat("slider value = %0.02f",slider->getValue())->getCString()); 
  50.  } 

 

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
返回顶部