服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - Cocos2d-x UI开发之CCControlSlider控件类使用实例

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

2021-02-01 14:19皂荚花 C/C++

这篇文章主要介绍了Cocos2d-x UI开发之CCControlSlider控件类使用实例,本文代码中包含大量注释讲解了CCControlSlider控件类的使用,需要的朋友可以参考下

关于控件使用时的一些配置,请参见文章: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.  } 

 

延伸 · 阅读

精彩推荐