本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
cocos2d-X 节点(CCMenu.h)APICCMenu.h
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
创建菜单,添加 items、设置 items 的对其方式
//cocos2d-x-3.0alpha0/cocos2dx/menu_nodes
#ifndef __CCMENU_H_
#define __CCMENU_H_#include "CCMenuItem.h"
#include "layers_scenes_transitions_nodes/CCLayer.h"#include "event_dispatcher/CCEventTouch.h"NS_CC_BEGIN/*** @addtogroup GUI* @{* @addtogroup menu* @{*/
简要
/** @brief A Menu
*
* 特点和限制:
* - 您可以在运行时使用addChild添加MenuItem对象:
* -但只接受MenuItem对象
*/
class CC_DLL Menu : public LayerRGBA
{
public:enum class State{WAITING,TRACKING_TOUCH,};/** 创建一个空的 Menu */static Menu* create();/** 使用一个 MenuItem 对象创建一个 Menu */static Menu* create(MenuItem* item, ...) CC_REQUIRES_NULL_TERMINATION;/** 使用一个 MenuItem 数组对象创建一个 Menu */static Menu* createWithArray(Array* pArrayOfItems);/** 创建一个菜单项目,然后使用addChild()添加* 其他项目。在脚本中使用时,它不能使用未确定数量的变量初始化*/static Menu* createWithItem(MenuItem* item);/** 使用多个 MenuItem 创建一个 Menu */static Menu* createWithItems(MenuItem *firstItem, va_list args);/*** @js ctor*/Menu() : _selectedItem(NULL) {}virtual ~Menu();/** 初始化一个 Menu */bool init();/** 使用 MenuItem 组成的 NSArray 初始化一个 Menu */bool initWithArray(Array* pArrayOfItems);/** 垂直对齐项目 */void alignItemsVertically();/** 填充垂直对齐项目@since v0.7.2*/void alignItemsVerticallyWithPadding(float padding);/** 水平对齐项目 */void alignItemsHorizontally();/** 填充水平对齐项目@since v0.7.2*/void alignItemsHorizontallyWithPadding(float padding);/** 对齐行的列中的项目 */void alignItemsInColumns(int columns, ...) CC_REQUIRES_NULL_TERMINATION;void alignItemsInColumns(int columns, va_list args);void alignItemsInColumnsWithArray(Array* rows);/** 对齐列的行中的项目 */void alignItemsInRows(int rows, ...) CC_REQUIRES_NULL_TERMINATION;void alignItemsInRows(int rows, va_list args);void alignItemsInRowsWithArray(Array* columns);virtual bool isEnabled() const { return _enabled; }virtual void setEnabled(bool value) { _enabled = value; };// overridesvirtual void removeChild(Node* child, bool cleanup) override;virtual void addChild(Node * child) override;virtual void addChild(Node * child, int zOrder) override;virtual void addChild(Node * child, int zOrder, int tag) override;virtual bool onTouchBegan(Touch* touch, Event* event) override;virtual void onTouchEnded(Touch* touch, Event* event) override;virtual void onTouchCancelled(Touch* touch, Event* event) override;virtual void onTouchMoved(Touch* touch, Event* event) override;virtual void onEnter() override;virtual void onExit() override;virtual void setOpacityModifyRGB(bool bValue) override {CC_UNUSED_PARAM(bValue);}virtual bool isOpacityModifyRGB(void) const override { return false;}protected:/** 菜单是否会收到事件 */bool _enabled;MenuItem* itemForTouch(Touch * touch);State _state;MenuItem *_selectedItem;
};// end of GUI group
/// @}
/// @}NS_CC_END#endif//__CCMENU_H_