Cocos2d-x学习笔记(十)之 控件类CCControl

时间:2023-02-06 15:41:56

  在应用的开发中,无论是Android 操作系统还是iOS 操作系统,其开发框架都提供了控件,包括按键、拖动滑块等,这样提高了开发效率。对于游戏的开发,UI 的开发同样需要控件来提高开发效率。下面我们就来看几个比较常用的UI控件的使用。

  1、拖动滑块的控件类CCControlSlider

 1 // 定义CCControlSlider实例
2 //参数为图片路径,分别是滑块滑道图片路径、滑块滑动后覆盖滑道图片路径和滑块图片路径
3 CCCo ntrolSlider *slider = CCControlSlider::create("extensions/
4 sliderTrack.png","extensions/sliderProgress.png" ,"extensions/
5 sliderThumb.png");
6 //设置锚点
7 slider->setAnchorPoint(ccp(0.5f, 1.0f));
8 // 设置范围最小值
9 slider->setMinimumValue(0.0f);
10 // 设置范围最大值
11 slider->setMaximumValue(5.0f);
12 // 设置滑块的位置
13 slider->setPosition(ccp(100f,
14 100.0f));
15 // 添加回调函数,当滑块被拖动时被调用
16 slider->addTargetWithActionForControlEvents(this, cccontrol_selector(滑块回调函数), CCControlEventValueChanged);
17 //把滑块添加到场景中
18 addChild(slider);
19
20
21 //在滑块回调函数中
22
23 //首先获得滑块对象
24 CCControlSlider* pSlider = (CCControlSlider*)sender;
25 //通过滑块对象获得滑块目前所在位置的值
26 pSlider->getValue())->getCString()

  2、开关按钮类CCControlSwitch

 1 // 定义开关控件
2 //参数分别是背景图片路径、开状态背景图片路径、关状态背景图片路径和开关背景图片路径,文字标签是开文字标签、关文字标签。
3 CCControlSwitch *switchControl = CCControlSwitch::create
4 (
5 CCSprite::create("extensions/switch-mask.png"),
6 CCSprite::create("extensions/switch-on.png"),
7 CCSprite::create("extensions/switch-off.png"),
8 CCSprite::create("extensions/switch-thumb.png"),
9 CCLabelTTF::create("On", "Arial-BoldMT", 16),
10 CCLabelTTF::create("Off", "Arial-BoldMT", 16)
11 );
12 //设置开关控件的位置
13 switchControl->setPosition(ccp (0, 0));
14 //添加到场景中
15 addChild(switchControl);
16 //添加回调函数
17 switchControl->addTargetWithActionForControlEvents(this, cccontrol_selec
18 tor(回调函数), CCControlEventValueChanged);

  3、按钮类CCControlButton

  按钮类CCControlButton的用法和上面按钮的用法基本一样。这里就不一一举例说明了,在这里只介绍一下按钮类CCControlButton的回调函数的事件常量:CCControlEventTouchDown、CCControlEventTouchDragInside、CCControlEventTouchDragOutside、CCControlEventTouchDragEnter、CCControlEventTouchDragExit、CCControlEventTouchUpInside、CCControlEventTouchUpOutside、CCControlEventTouchCancel等。