您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx layer理解

2015-08-28 03:53 375 查看
对Layer的理解

/////cocos2d-x-3.0alpha0/extensions/CocoStudio/GUI/System
// 获取 UIInputManager,添加/移除 widget ,设置 UILayer 的可见 性

#ifndef __UILAYER_H__
#define __UILAYER_H__

#include "cocos2d.h"
#include "ExtensionMacros.h"
#include "../BaseClasses/UIRootWidget.h"
#include "../System/UIInputManager.h"

NS_CC_EXT_BEGIN

class UILayer : public Layer
{

public:
/**
* Default constructor
*/
UILayer();

/**
* Default destructor
*/
virtual ~UILayer();

/**
* Allocates and initializes a widget.
*/
static UILayer *create(void);

//initializes state of uilayer.         //初始化 uilayer 的状态
virtual bool init();

virtual void onEnter();
virtual void onExit();
virtual void onEnterTransitionDidFinish();

virtual bool onTouchBegan(Touch *pTouch, Event *pEvent);
virtual void onTouchMoved(Touch *pTouch, Event *pEvent);
virtual void onTouchEnded(Touch *pTouch, Event *pEvent);
virtual void onTouchCancelled(Touch *pTouch, Event *pEvent);

/**
* Add a widget to UILayer, for drawing.                //为绘制添加一个 eidget 到 UILayer
*
* @param widget.
*/
void addWidget(UIWidget* widget);

/**
* Remove a widget from UILayer.
*
* @param widget.
*
* @param cleanup true 所有 children widgets 运行的 所有 action 都将 删除, false otherwise.
*/
void removeWidget(UIWidget* widget);

/**
* Sets whether the UILayer is visible                          可见
*
* 默认值是 true ,默认可见
*
* @param visible   true if the UILayer is visible, false if the UILayer is hidden.
*/
virtual void setVisible(bool visible);

/**
* Finds a widget whose tag is equal tag param from widget tree.        //从 widget 树上查找 tag 等于输入参数的 widget
*
* @param tag.
*/
UIWidget* getWidgetByTag(int tag);

/**
* Seek a widget whose name is equal name param from widget tree.       //从 widget 树上查找 name 等于输入参数的 widget
*
* @param name.
*/
UIWidget* getWidgetByName(const char* name);

/**
* Gets UIInputManager.
*
* UIInputManager 管理 UILayer 的触摸.
*
* @return UIInputManager.
*/
UIInputManager* getInputManager();

/**
* Remove and clean up all of UILayer's widget.             //移除并清理所有的  UILayer's widget.
*/
virtual void clear();

/**
* Gets root widget of UILayer.
*
* @return UIRootWidget, "UIRootWidget" is the root widget of UILayer.
*/
UIRootWidget* getRootWidget();

protected:
UIRootWidget* _rootWidget;
UIInputManager* _inputManager;
};

NS_CC_EXT_END

#endif /* defined(__UILAYER_H__) */
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: