生活随笔
收集整理的這篇文章主要介紹了
实例介绍Cocos2d-x开关菜单
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
開關菜單是MenuItemToggle類實現的,它是一種可以進行兩種狀態切換的菜單。它可以通過下面的函數創建:
?
[html]?view plaincopy
static?MenuItemToggle*createWithCallback??(??????????????????const?ccMenuCallback?&??????callback,????????????//菜單操作的回調函數指針???????????MenuItem?*????item,??????????????????????????????????????????//進行切換的菜單項??????...??)???? ?
?
從第二個參數開始都是MenuItem類的實例對象,它們是開關菜單顯示的菜單項,它們可以是文本、圖片和精靈類型的菜單項,但是最后不用忘記NULL結尾。
下面代碼是簡單形式的文本類型的開關菜單:
?
[html]?view plaincopy
auto?toggleMenuItem?=MenuItemToggle::createWithCallback(??????????????????????????????????????????CC_CALLBACK_1(HelloWorld::menuItem1Callback,this),?????????????????????????MenuItemFont::create("On"?),?????????????????????????MenuItemFont::create("Off"),?????????????????????????NULL?);?????Menu*?mn?=?Menu::create(toggleMenuItem,NULL);??this->addChild(mn);?? ?
下面我們通過一個實例介紹一下其它的復雜類型的開關菜單的使用,這個實例如下圖所示,是一個游戲音效和背景音樂設置界面,我們可以通過開關菜單實現這個功能,我們的美術設計師為每一個設置項目(音效和背景音樂)分別準備了兩個圖片。
?
?
下面我們看看實例代碼的實現,HelloWorldScene.cpp中使用MenuItemSprite菜單項的代碼如下:
?
[html]?view plaincopy
bool?HelloWorld::init()??{?????if?(?!Layer::init()?)?????{?????????return?false;?????}??????????Size?visibleSize?=?Director::getInstance()->getVisibleSize();?????Point?origin?=?Director::getInstance()->getVisibleOrigin();????????Sprite?*bg?=?Sprite::create("menu/background.png");?????bg->setPosition(Point(origin.x?+?visibleSize.width/2,???????????????????????????????origin.y?+visibleSize.height?/2));?????this->addChild(bg);?????????//音效?????auto?soundOnMenuItem?=?MenuItemImage::create(??????????????????????????????"menu/on.png",??????????????????????????????"menu/on.png");????????????????????????????????????????????????????????????????????????①?????auto?soundOffMenuItem?=?MenuItemImage::create(??????????????????????????????"menu/off.png",??????????????????????????????"menu/off.png");????????????????????????????????????????????????????????????????????????②??????????auto?soundToggleMenuItem?=?MenuItemToggle::createWithCallback(?????????????????????????CC_CALLBACK_1(HelloWorld::menuSoundToggleCallback,this),??????????????????????????????????????????????????????????????????????????????soundOnMenuItem,??????????????????????????????????????????????????????????????????????????????soundOffMenuItem,??????????????????????????????????????????????????????????????????????????????NULL);????????????????????????????????????????????????????????????③?????????????soundToggleMenuItem->setPosition(???????????????????????????????????????????????????????????Director::getInstance()->convertToGL(Point(818,220)));??????????//音樂?????auto?musicOnMenuItem??=MenuItemImage::create(??????????????????????????????"menu/on.png",??????????????????????????????"menu/on.png");????????????????????????????????????????????????????????????????????????④??????????automusicOffMenuItem??=MenuItemImage::create(??????????????????????????????"menu/off.png",??????????????????????????????"menu/off.png");????????????????????????????????????????????????????????????????????????⑤?????auto?musicToggleMenuItem?=?MenuItemToggle::createWithCallback(???????????????????????????????????CC_CALLBACK_1(HelloWorld::menuMusicToggleCallback,this),?????????????????????????????????????????????????????musicOnMenuItem,?????????????????????????????????????????????????????musicOffMenuItem,?????????????????????????????????????????????????????NULL?);????????????????????????????????????????⑥??????????musicToggleMenuItem->setPosition(???????????????????????????????????????????????????????????Director::getInstance()->convertToGL(Point(818,362)));?????????//Ok按鈕??????????autookMenuItem??=?MenuItemImage::create(??????????????????????????????"menu/ok-down.png",??????????????????????????????"menu/ok-up.png");??????????okMenuItem->setPosition(Director::getInstance()->convertToGL(Point(600,510)));?????????Menu*?mn?=?Menu::create(soundToggleMenuItem,????????????????????????????????????????????????????musicToggleMenuItem,okMenuItem,?NULL);???????????????????????????????????⑦????????mn->setPosition(Point::ZERO);?????this->addChild(mn);??????????return?true;??}?? ?
?
在上面代碼第①是創建音效開的圖片菜單項,第②行是創建音效關的圖片菜單項,第③行代碼是通過createWithCallback函數創建開關菜單項MenuItemToggle。類似的第④~⑥創建了背景音樂開關菜單項。第⑦行代碼是通過上面創建的開關菜單項創建Menu對象。
轉載于:https://www.cnblogs.com/iOS-Blog/p/3725241.html
總結
以上是生活随笔為你收集整理的实例介绍Cocos2d-x开关菜单的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。