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

  在应用的开发中,无论是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等。

posted @ 2013-08-22 14:01  【Winco】  阅读(855)  评论(0编辑  收藏  举报