Cocos2dx 學習筆記25 CCMenu選單項

2021-06-26 21:07:10 字數 2782 閱讀 3365

cocos2d-x的選單中提供了多種選單項的生成方式,他們都繼承於menuitem,如下圖

1 ccmenuitemlable

包括ccmenuitematlasfont

和ccmenuitemfont

是兩種定義選單項字型的方式,其中

ccmenuitemfont

是通過設定字型名稱來設定字型,這個字型是系統自帶的,通過官方testcpp中的例項可以檢視其用法

// label item (labelatlas)

cclabelatlas* labelatlas = cclabelatlas::create("0123456789", "fonts/labelatlas.png", 16, 24, '.');

ccmenuitemlabel* item3 = ccmenuitemlabel::create(labelatlas, this, menu_selector(menulayermainmenu::menucallbackdisabled) );

item3->setdisabledcolor( ccc3(32,32,64) );

item3->setcolor( ccc3(200,200,255) );

// font item

ccmenuitemfont *item4 = ccmenuitemfont::create("i toggle enable items", this, menu_selector(menulayermainmenu::menucallbackenable) );

item4->setfontsizeobj(20);

item4->setfontname("marker felt");

// label item (cclabelbmfont)

cclabelbmfont* label = cclabelbmfont::create("configuration", "fonts/bitmapfonttest3.fnt");

ccmenuitemlabel* item5 = ccmenuitemlabel::create(label, this, menu_selector(menulayermainmenu::menucallbackconfig));

// testing issue #500

item5->setscale( 0.8f );

// events

ccmenuitemfont::setfontname("marker felt");

ccmenuitemfont *item6 = ccmenuitemfont::create("priority test", this, menu_selector(menulayermainmenu::menucallbackprioritytest));

// bugs item

ccmenuitemfont *item7 = ccmenuitemfont::create("bugs", this, menu_selector(menulayermainmenu::menucallbackbugstest));

// font item

ccmenuitemfont* item8 = ccmenuitemfont::create("quit", this, menu_selector(menulayermainmenu::onquit));

ccmenuitemfont* item9 = ccmenuitemfont::create("remove menu item when moving", this,

menu_selector(menulayermainmenu::menumovingcallback));

2.ccmenuitemsprite

這個選單項的特點就是可以封裝進入選單項,用法如下

// font item    

ccsprite* spritenormal = ccsprite::create(s_menuitem, ccrectmake(0,23*2,115,23));

ccsprite* spriteselected = ccsprite::create(s_menuitem, ccrectmake(0,23*1,115,23));

ccsprite* spritedisabled = ccsprite::create(s_menuitem, ccrectmake(0,23*0,115,23));

ccmenuitemsprite* item1 = ccmenuitemsprite::create(spritenormal, spriteselected, spritedisabled, this, menu_selector(menulayermainmenu::menucallback) );

// image item

ccmenuitem* item2 = ccmenuitemimage::create(s_sendscore, s_presssendscore, this, menu_selector(menulayermainmenu::menucallback2) );

2.ccmenuitemtoggle

ccmenuitemtoggle可以將任意的

ccmenuitem

封裝進去,作為乙個按鈕式的開關

ccmenuitemtoggle* item1 = ccmenuitemtoggle::createwithtarget(this, 

menu_selector(menulayer4::menucallback), 

ccmenuitemfont::create( "on" ),

ccmenuitemfont::create( "off"),

null );

Cocos2d x學習筆記1

1.建立新的cocos2d x 3.0 專案 在命令列中輸入 cocos new helloworld 專案名稱 p com.ss.pku 包名字 l cpp 專案型別 d d cocos workspace 專案存放路徑 2.資料夾分析 resource 資料夾 存放資源檔案 include和so...

Cocos2d x學習筆記(7)

1 動作基本概念 ccactiong是動作類的基類,動作作用於ccnode,因此,任何乙個動作都需要ccnode物件來執行。ccaction作為乙個基類,其實質是乙個介面 抽象類 由它派生的實現類才是實際使用的動作。ccaction的絕大多數實現類都派生自ccfinitetimeaction,這個類...

Cocos2d x動作學習筆記

action類如其名,它可以改變node物件的屬性,action物件是隨著時間改變node的屬性。任何乙個以node為基類的物件都有可執行的動作物件。例如,你可以在乙個時間段內將sprite精靈從乙個位置移動到另乙個位置。每個動作都有by和to兩個狀態。為什麼呢?因為它們所執行的結果是不同的。by相...