Cocos2d-x UI開發(fā)之CCControlButton控件類實例
在應(yīng)用的開發(fā)中,無論是Android操作系統(tǒng)還是iOS操作系統(tǒng),其開發(fā)框架都提供了控件,包括按鍵、拖動滑塊等,這樣提高了開發(fā)效率。對于游戲的開發(fā),UI的開發(fā)同樣需要控件來提高開發(fā)效率。對Cocos2D-x來說,從2.0版本開始提供了很多控件類來幫助我們更好地開發(fā)UI。


在HelloWorld.h中加入如下倆句代碼
//需要包含如下的頭文件和命名空間的申明 #include "cocos-ext.h" using namespace cocos2d::extension;
同時加入button事件響應(yīng)的函數(shù)
void touchDown(CCObject * pSender,CCControlEvent evt);
以下是HelloWorld.cpp中的init函數(shù)
//在附加包含目錄中新增一項E:\cocos2d-x-2.2\cocos2d-x-2.2\extensions
//在配置屬性->連接器->輸入的附加依賴項中添加libExtensions.lib
//經(jīng)過上述步驟才可以使用控件類
bool HelloWorld::init()
{
bool bRet = false;
do
{
CC_BREAK_IF(! CCLayer::init());
//創(chuàng)建文本類,是顯示在button中的文本
CCLabelTTF * title = CCLabelTTF::create("music","Arial",32);
//可以設(shè)置一下title的顏色
title->setColor(ccc3(255,0,0));
//創(chuàng)建一張九妹圖片(一張支持拉伸的圖片,拉伸可以避免圖片失真,可以節(jié)省空間)
//按鈕處于正常狀態(tài)下的圖片
CCScale9Sprite * buttonNormal = CCScale9Sprite::create("buttonBackground.png");
//控件類CCControlButton,第一個參數(shù)就是按鈕顯示的文本,第二個參數(shù)就是按鈕正常狀態(tài)下的圖片
//button的大小和title的大小是相同的,這就是為什么選九妹圖片的原因了,會隨著title的大小自動拉伸
CCControlButton * button = CCControlButton::create(title,buttonNormal);
//創(chuàng)建一張按鈕按下的背景圖片
CCScale9Sprite * spriteSelected = CCScale9Sprite::create("buttonHighlighted.png");
//設(shè)置button按下時的背景圖片,第二個參數(shù)是一個宏,f12查看其他的宏
button->setBackgroundSpriteForState(spriteSelected,CCControlStateSelected);
//修改title的顏色
button->setTitleColorForState(ccc3(0,255,255), CCControlStateHighlighted);
button->setPosition(ccp(240,160));
this->addChild(button);
//為按鈕添加事件
button->addTargetWithActionForControlEvents(this,cccontrol_selector(HelloWorld::touchDown),
CCControlEventTouchDown);
bRet = true;
} while (0);
return bRet;
}
關(guān)于事件響應(yīng)函數(shù)的實現(xiàn)
void HelloWorld::touchDown(CCObject * pSender,CCControlEvent evt)
{
CCLog("touch down!");
}
相關(guān)文章
C++實現(xiàn)LeetCode(14.最長共同前綴)
這篇文章主要介紹了C++實現(xiàn)LeetCode(14.最長共同前綴),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C語言入門學(xué)習(xí)之fgets()函數(shù)和fputs()函數(shù)
fgetc() 和 fputc() 函數(shù)每次只能讀寫一個字符,速度較慢,實際開發(fā)中往往是每次讀寫一個字符串或者一個數(shù)據(jù)塊,這樣能明顯提高效率,這篇文章主要給大家介紹了關(guān)于C語言入門學(xué)習(xí)之fgets()函數(shù)和fputs()函數(shù)的相關(guān)資料,需要的朋友可以參考下2021-11-11
C++函數(shù)對象Functor與匿名函數(shù)對象Lambda表達式詳解
這篇文章主要介紹了C++函數(shù)對象Functor(仿函數(shù))與匿名函數(shù)對象(Lambda表達式)詳細(xì)介紹以及底層實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
C語言數(shù)據(jù)結(jié)構(gòu) 雙向鏈表的建立與基本操作
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu) 雙向鏈表的建立與基本操作的相關(guān)資料,需要的朋友可以參考下2017-03-03
解析C++函數(shù)的默認(rèn)參數(shù)和占位參數(shù)及較之C語言的拓展
這篇文章主要介紹了C++中的默認(rèn)參數(shù)和占位參數(shù)及較之C語言的拓展,需要的朋友可以參考下2016-03-03

