cocos2d-x v3.3中 关于ControlButton的认识

在做游戏的时候,会遇到游戏事件的响应,ControlButton可以用按钮对事件作出响应。

1、 ControlButton的介绍

ControlButton按钮的大小可以根据标签内容进行缩放,同时它具有很多按钮所需要的功能。

2、 ControlButton的使用

void PlayScene::createJumpButton(){ 
auto visibleSize = Director::getInstance()->getVisibleSize();
//按钮标题
 auto jumpLabel = Label::create(“Jump”, “Arail”, 30);

//正常状态下的按钮图片(点九图CCScale9Sprite,可以使得按钮在变大的情况下,尽量保持棱角不失真。)
 auto norBtn = Scale9Sprite::create(“norBtn.png”);

//点击状态下的按钮图片
 auto lightBtn = Scale9Sprite::create(“lightBtn.png”);

//创建按钮,按钮的大小根据标题自动调整
 auto jumpBtn = ControlButton::create(jumpLabel, norBtn);

 jumpBtn->setPosition(visibleSize.width – 80, 130);

//选择点击时lightBtn图片的状态,HIGH_LIGHTED就是高亮,点击时图片会高亮
 jumpBtn->setBackgroundSpriteForState(lightBtn, Control::State::HIGH_LIGHTED);

//按下按钮后的回调函数
 jumpBtn->addTargetWithActionForControlEvents(
 this,
 cccontrol_selector(PlayScene::jumpEvent),
 Control::EventType::TOUCH_DOWN);

this->addChild(jumpBtn);
 }

其中addTargetWithActionForControlEvents()函数解释如下:

/* TOUCH_DOWN:当鼠标处于按下并曾经点中按钮时,则触发一次 */ 
 controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDownAction), CCControlEventTouchDown);
/* DRAG_ENTER:当鼠标处于按下并曾经点中按钮的状态下,鼠标进入按钮范围,则触发一次 */
 controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragEnter), CCControlEventTouchDragEnter);

/* DRAG_EXIT:当鼠标处于按下并曾经点中按钮的状态下,鼠标离开按钮范围,则触发一次 */
 controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragExit), CCControlEventTouchDragExit);

/* DRAG_INSIDE:当鼠标处于按下并曾经点中按钮的状态下,鼠标进入按钮范围,则触发,只要达到条件,就不断触发 */
 controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragInside), CCControlEventTouchDragInside);

/* DRAG_OUTSIDE:当鼠标处于按下并曾经点中按钮的状态下,鼠标离开按钮范围,则触发,只要达到条件,就不断触发 */
 controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragOutside), CCControlEventTouchDragOutside);

/* TOUCH_UP_INSIDE:当鼠标处于按下并曾经点中按钮的状态下,鼠标松开且在按钮范围内,则触发一次 */
 controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchUpInside), CCControlEventTouchUpInside);

/* TOUCH_UP_OUTSIDE:当鼠标处于按下并曾经点中按钮的状态下,鼠标松开且在按钮范围外,则触发一次 */
 controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchUpOutside), CCControlEventTouchUpOutside);

/* TOUCH_CANCEL:由其它事件中断按钮事件而触发的 */
 controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchCancel), CCControlEventTouchCancel);

/* VALUE_CHANGED:触摸拖曳或操纵控制,让它发出一系列的不同的值。 */
 controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchCancel), CCControlEventValueChanged);
QQ图片20150803082812

按钮素材下载:百度云网盘链接

夏天的风博客中的讲解(cocos2d-x官方教程中就是转载的他的):点击进入

标签:   |  
时间: 2015年08月01日下午20:41  |  
作者:
LEAVE A REPLY
loading
正在赶回来……