滑动条(Slider)

有时候你想平滑的改变一个值,比如游戏设置中,调整背景音乐的音量,或着你有一个角色,允许用户设置攻击敌人的力量。这种场景最适合使用滑动条,Cocos2d-x 提供 Slider 对象支持滑动条。

创建滑动条:

  1. #include "ui/CocosGUI.h"
  2. auto slider = Slider::create();
  3. slider->loadBarTexture("Slider_Back.png"); // what the slider looks like
  4. slider->loadSlidBallTextures("SliderNode_Normal.png", "SliderNode_Press.png", "SliderNode_Disable.png");
  5. slider->loadProgressBarTexture("Slider_PressBar.png");
  6. slider->addTouchEventListener([&](Ref* sender, Widget::TouchEventType type){
  7. switch (type)
  8. {
  9. case ui::Widget::TouchEventType::BEGAN:
  10. break;
  11. case ui::Widget::TouchEventType::ENDED:
  12. std::cout << "slider moved" << std::endl;
  13. break;
  14. default:
  15. break;
  16. }
  17. });
  18. this->addChild(slider);

从上面的例子,可以看出,实现一个滑动条需要提供五张图像,对应滑动条的不同部分不同状态,分别为:滑动条背景,上层进度条,正常显示时的滑动端点,滑动时的滑动端点,不可用时的滑动端点。本次示例的五张图像如下:

滑动条(Slider)  - 图1滑动条(Slider)  - 图2滑动条(Slider)  - 图3滑动条(Slider)  - 图4滑动条(Slider)  - 图5滑动条(Slider)  - 图6滑动条(Slider)  - 图7滑动条(Slider)  - 图8滑动条(Slider)  - 图9

在屏幕上一个滑动条看起来是这样的:

滑动条(Slider)  - 图10