文本菜單類menuitemfont它的其中一個建立函數create定義如下
文本菜單類menuitematlasfont是基于圖檔集的文本菜單項它的其中一個建立函數create定義如下
這次我們會通過一個執行個體介紹一下文本菜單的使用這個執行個體如下圖所示其中菜單start是使用menuitemfont實作的菜單help是使用menuitematlasfont實作的。

下面我們看看helloworldscene.cpp中init函數如下
上述代碼第①和②行是設定文本菜單的文本字型和字型大小。第③行代碼是建立menuitemfont菜單項對象它是一個一般文本菜單create是函數的第一個參數是菜單項的文本内容第二個參數是點選菜單項回調的函數指針。其中cc_callback_1宏是定義一個回調函數并函數與對象綁定在一起1表示這個函數有一個輸出參數helloworld::menuitem1callback是函數指針this代表函數所在的對象。
helloworld::menuitem1callback需要在helloworld.h頭檔案中聲明helloworld.h頭檔案代碼如下
回調函數代碼如下函數中的參數是菜單項menuitem的執行個體。
helloworldscene.cpp中init函數中第④行代碼是建立一個menuitematlasfont菜單項對象這種菜單項是基于圖檔集的菜單項。menuitematlasfont需要将圖檔集放到資源目錄resources下。在本例中我們是将所有的圖檔都放到一個resources下的menu目錄中是以create函數的第二個參數是"menu/tuffy_bold_italic-charmap.png"要求帶有menu路徑。
還有第⑤行代碼menu* mn = menu::create(item1, null)是建立菜單對象把之前建立的菜單項添加到菜單中create函數中有是這些菜單項的數組最後要用null結束。第⑥行代碼mn->alignitemsvertically()是設定菜單項垂直對齊。第⑦行代碼是this->addchild(mn,1,2)是把菜單對象添加到目前層中。
、
更多内容請關注最新cocos圖書《cocos2d-x實戰 c++卷》
歡迎加入cocos2d-x技術讨論群257760386
《cocos2d-x實戰 c++卷》現已上線各大商店均已開售
《cocos2d-x實戰 c++卷》源碼及樣章下載下傳位址
歡迎關注智捷ios課堂微信公共平台