加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d-x CCControlButton,九妹图用按钮

发布时间:2020-12-14 19:57:06 所属栏目:百科 来源:网络整理
导读:pre name="code" class="cpp"/************************************************************************//* CCControlButton 固定宽高的函数是:setAdjustBackgroundImage(false)按钮按下时改变按钮文字的颜色:setTileColorForState(ccWHITE,CCControlStat
<pre name="code" class="cpp">/************************************************************************/
/* CCControlButton 固定宽高的函数是:
	setAdjustBackgroundImage(false)
	
	按钮按下时改变按钮文字的颜色:
	setTileColorForState(ccWHITE,CCControlStateHighlighted);
	CCControlStateHighlighted表示按钮被单击处于高亮状态时改变按钮文字的颜色为前面指定的颜色;
*/
/************************************************************************/

	bool bRet = false;
	do 
	{
		//这样写比较保险:
		CC_BREAK_IF(!CCLayer::init());//此宏只能在循环里调用;用来代替 if () break;
		//正常状态下的按钮图片;
		CCScale9Sprite * btnNormal = CCScale9Sprite::create("scale9.png");
		//单击状态下的图片;
		CCScale9Sprite * btnDown = CCScale9Sprite::create("10.png");
		//按钮标题文字;
		CCLabelTTF * title = CCLabelTTF::create("Touch Me!3334444443","courier new",30);
		//创建按钮,按钮的大小会根据标题自动调整;
		CCControlButton * controlBtn = CCControlButton::create(title,btnNormal);

		//设置按钮按下时的图片;
		controlBtn->setBackgroundSpriteForState(btnDown,CCControlStateSelected);
		controlBtn->setPosition(ccp(200,200));

		//固定背景大小;虽然有说会自动变大,但是我用的没效果;
		controlBtn->setPreferredSize(CCSize(200,200));
		
		this->addChild(controlBtn);
	
		//点击事件;
		controlBtn->addTargetWithActionForControlEvents(this,cccontrol_selector(CCScale::touchDownAction),CCControlEventTouchDown);

		//点击事件;
		/************************************************************************/
		/*      		 当鼠标处于按下并曾经点中按钮时,则触发一次 
						void touchDownAction(CCObject* pSender,CCControlEvent event);
						CCControlEventTouchDown

						当鼠标处于按下并曾经点中按钮的状态下,鼠标进入按钮范围,则触发一次
						void touchDragEnter(CCObject* pSender,CCControlEvent event);
						CCControlEventTouchDragEnter

						当鼠标处于按下并曾经点中按钮的状态下,鼠标离开按钮范围,则触发一次
						void touchDragExit(CCObject* pSender,CCControlEvent event);
						CCControlEventTouchDragExit
						
						当鼠标处于按下并曾经点中按钮的状态下,鼠标进入按钮范围,则触发,只要达到条件,就不断触发
						void touchDragInside(CCObject* pSender,CCControlEvent event);
						CCControlEventTouchDragInside

						当鼠标处于按下并曾经点中按钮的状态下,鼠标离开按钮范围,则触发,只要达到条件,就不断触发
						void touchDragOutside(CCObject* pSender,CCControlEvent event);
						CCControlEventTouchDragOutside

						当鼠标处于按下并曾经点中按钮的状态下,鼠标松开且在按钮范围内,则触发一次
						void touchUpInside(CCObject* pSender,CCControlEvent event);
						CCControlEventTouchUpInside

						当鼠标处于按下并曾经点中按钮的状态下,鼠标松开且在按钮范围外,则触发一次
						void touchUpOutside(CCObject* pSender,CCControlEvent event);
						CCControlEventTouchUpOutside

						暂时没有发现能用鼠标触发这个事件的操作,看了注释,应该是由其它事件中断按钮事件而触发的
						void touchCancel(CCObject* pSender,CCControlEvent event);   
						CCControlEventTouchCancel

						*/
		/************************************************************************/



		bRet = true;
	} while (0);

void touchDownAction(CCObject* pSender,CCControlEvent event)
{
	CCSprite * spr = CCSprite::create("10.png");
	addChild(spr);
	spr->setPosition(ccp(200,200));
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读