生活随笔
收集整理的這篇文章主要介紹了
cocos2d-x按钮CCControlButton的用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載請注明,原文地址:??http://blog.csdn.net/musicvs/article/details/8242963
?
1.?按鈕創建
[cpp]?view plaincopyprint?
?? ????CCScale9Sprite*?btnNormal?=?CCScale9Sprite::create("button.png");?? ?? ?????? ????CCScale9Sprite*?btnDown?=?CCScale9Sprite::create("buttonHighlighted.png");?? ?? ?????? ????CCLabelTTF?*title?=?CCLabelTTF::create("Touch?Me!3324234",?"Marker?Felt",?30);?? ?? ?????? ????CCControlButton*?controlBtn?=?CCControlButton::create(title,?btnNormal);?? ?? ?????? ????controlBtn->setBackgroundSpriteForState(btnDown,?CCControlStateSelected);?? ????controlBtn->setPosition(ccp(200,?200));?? ????this->addChild(controlBtn);??
?
其實代碼很簡單,兩張圖片,分別是按鈕正常狀態和點擊狀態圖片,當然,她們都是九妹圖片~
然后是一個標題標簽,當然了,如果按鈕沒有標題,呢誰知道是什么作用呢~
?
最后要界面一個新的家伙:?CCControlButton。
我是這么理解的,CCControlButton它只是一個空殼,它具備很多按鈕所需要的功能(點擊事件什么的),然后九妹圖片和標題標簽是內容,把內容添加到這個空殼里,一個按鈕就誕生了:
?
但是有一點要注意,按鈕的大小是根據標簽內容進行縮放的,那,如果我想讓按鈕的大小固定呢?畢竟不是所有人都喜歡變化~!
?
很簡單,就一句話:
[cpp]?view plaincopyprint?
?? ????controlBtn->setPreferredSize(CCSize(300,?50));??
?
搞定~
?
2.?按鈕事件
按鈕怎么可能少了點擊事件呢?~這個很簡單,直接看代碼,注釋已經很詳細了。
[cpp]?view plaincopyprint?
?? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchDownAction),?CCControlEventTouchDown);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchDragEnter),?CCControlEventTouchDragEnter);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchDragExit),?CCControlEventTouchDragExit);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchDragInside),?CCControlEventTouchDragInside);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchDragOutside),?CCControlEventTouchDragOutside);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchUpInside),?CCControlEventTouchUpInside);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchUpOutside),?CCControlEventTouchUpOutside);?? ?? ?????? ????controlBtn->addTargetWithActionForControlEvents(this,?cccontrol_selector(HelloWorld::touchCancel),?CCControlEventTouchCancel);??
?
回調函數是這樣的:
[cpp]?view plaincopyprint?
void?touchDownAction(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchDragEnter(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchDragExit(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchDragInside(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchDragOutside(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchUpInside(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchUpOutside(CCObject*?pSender,?CCControlEvent?event);?? ???void?touchCancel(CCObject*?pSender,?CCControlEvent?event);??
?
唯一要注意的是,CCControlEvent?不是指針,千萬不要習慣了就給它加一個*號~
轉載于:https://www.cnblogs.com/lexiaoyao-jun/archive/2013/03/01/5208266.html
總結
以上是生活随笔為你收集整理的cocos2d-x按钮CCControlButton的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。