1、Ccmenu:菜单类,继承自cclayerRGBA
class CC_DLL Ccmenu : public cclayerRGBA
{
bool m_bEnabled; //标记菜单是否接收事件
public:
Ccmenu() : m_pSelectedItem(NULL) {}
virtual ~Ccmenu(){}
static Ccmenu* create(); //几个创建菜单的函数
static Ccmenu* create(CcmenuItem* item,...);
static Ccmenu* createWithArray(CCArray* pArrayOfItems);
static Ccmenu* createWithItem(CcmenuItem* item);
static Ccmenu* createWithItems(CcmenuItem *firstItem,va_list args);
bool init(); //初始化相关函数
bool initWithArray(CCArray* pArrayOfItems);
void alignItemsverticallyWithPadding(float padding); //下面是和菜单对齐相关的一组函数
void alignItemsHorizontally();
void alignItemsHorizontallyWithPadding(float padding);
void alignItemsInColumns(unsigned int columns,...);
void alignItemsInColumns(unsigned int columns,va_list args);
void alignItemsInColumnsWithArray(CCArray* rows);
void alignItemsInRows(unsigned int rows,...);
void alignItemsInRows(unsigned int rows,va_list args);
void alignItemsInRowsWithArray(CCArray* columns);
void setHandlerPriority(int newPriority); //设置处理的优先级
virtual void addChild(CCNode * child); //孩子节点处理相关函数
virtual void addChild(CCNode * child,int zOrder);
virtual void addChild(CCNode * child,int zOrder,int tag);
virtual void registerWithTouchdispatcher();
virtual void removeChild(CCNode* child,bool cleanup);
virtual bool ccTouchBegan(CCTouch* touch,CCEvent* event); //触摸处理相关函数
virtual void ccTouchEnded(CCTouch* touch,CCEvent* event);
virtual void ccTouchCancelled(CCTouch *touch,CCEvent* event);
virtual void ccTouchMoved(CCTouch* touch,CCEvent* event);
virtual void onExit(); //退出
virtual void setopacityModifyRGB(bool bValue) {CC_UNUSED_ParaM(bValue);}
virtual bool isOpacityModifyRGB(void) { return false;}
virtual bool isEnabled() { return m_bEnabled; } //判断和设置是否混合
virtual void setEnabled(bool value) { m_bEnabled = value; };
protected:
CcmenuItem* itemForTouch(CCTouch * touch);
tCcmenuState m_eState;
CcmenuItem *m_pSelectedItem;
};
2、
cclayerRGBA:继承自
cclayer和CCRGBAProtocol,颜色相关类
class CC_DLL cclayerRGBA : public cclayer,public CCRGBAProtocol
{
public:
CREATE_FUNC(cclayerRGBA);
cclayerRGBA();
virtual ~cclayerRGBA();
virtual bool init();
virtual glubyte getopacity();
virtual glubyte getdisplayedOpacity();
virtual void setopacity(glubyte opacity);
virtual void updatedisplayedOpacity(glubyte parentOpacity);
virtual bool isCascadeOpacityEnabled();
virtual void setCascadeOpacityEnabled(bool cascadeOpacityEnabled);
virtual const ccColor3B& getColor();
virtual const ccColor3B& getdisplayedColor();
virtual void setColor(const ccColor3B& color);
virtual void updatedisplayedColor(const ccColor3B& parentColor);
virtual bool isCascadeColorEnabled();
virtual void setCascadeColorEnabled(bool cascadeColorEnabled);
virtual void setopacityModifyRGB(bool bValue) {CC_UNUSED_ParaM(bValue);}
virtual bool isOpacityModifyRGB() { return false; }
protected:
glubyte _displayedOpacity,_realOpacity;
ccColor3B _displayedColor,_realColor;
bool _cascadeOpacityEnabled,_cascadeColorEnabled;
};
3、CREATE_FUNC:定义
一个创建
函数的宏,使编写更简便
#define CREATE_FUNC(__TYPE__) \
static __TYPE__* create() \
{ \
__TYPE__ *pRet = new __TYPE__(); \
if (pRet && pRet->init()) \
{ \
pRet->autorelease(); \
return pRet; \
} \
else \
{ \
delete pRet; \
pRet = NULL; \
return NULL; \
} \
}
4、C
cmenuItem:
菜单项,继承自CCNodeRGBA
class CC_DLL CcmenuItem : public CCNodeRGBA
{
protected:
bool m_bSelected; //是否被选中
bool m_bEnabled;
public:
CcmenuItem()
: m_bSelected(false),m_bEnabled(false),m_pListener(NULL),m_pfnSelector(NULL),m_nScriptTapHandler(0)
{}
virtual ~CcmenuItem();
static CcmenuItem* create();
bool initWithTarget(CCObject *rec,SEL_MenuHandler selector);
CCRect rect();
virtual void activate();
virtual void selected(); //选中
virtual void unselected(); //取消选中
virtual void registerScriptTapHandler(int nHandler); //脚本处理例程相关
virtual void unregisterScriptTapHandler(void);
int getScriptTapHandler() { return m_nScriptTapHandler; };
virtual bool isEnabled(); //启用和选择相关
virtual void setEnabled(bool value);
virtual bool isSelected();
void setTarget(CCObject *rec,SEL_MenuHandler selector); //设置回调函数
protected:
CCObject* m_pListener;
SEL_MenuHandler m_pfnSelector;
int m_nScriptTapHandler;
};
4、tC
cmenuState:
菜单状态
typedef enum
{
kCcmenuStateWaiting,kCcmenuStateTrackingTouch
} tCcmenuState;