本文来自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; };
// overrides
virtual 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_