无论是PC应用还是移动应用,必不可少的元素之一就是控件,对用户来说它们被用于用户与应用的交互,对应用本身来说它们被用于应用各个功能框架的交互。cocos2d-x里的控件包含的种类很多,这里记录的是最常用的控件类CCMenuItem。对于为什么将一个看上去更像是按钮控件的东西被命名为Menu,我是着实纠结了一小会儿,现在看来也许是因为cocos2d-x用的是节点(Node)来存储控制各个对象,所以更适合叫MenuItem而不是Button……
官方原例里有个MenuTest,里面演示了一些风格化的MenuItem。查看这个类的源码可以看到其下衍生出了一堆子类控件,其中最眼熟的就是CCMenuItemImage,这玩意就是新建一个工程时就被默认建立的那个右下角用于关闭应用的“电源”按钮:
// Create a "close" menu item with close icon, it's an auto release object.
CCMenuItemImage *pCloseItem = CCMenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
this,
menu_selector(HelloWorld::menuCloseCallback));
CC_BREAK_IF(! pCloseItem);
// Place the menu item bottom-right conner.
pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20));