Cocos2D-X 渲染框架之CCLayer

CCLayer】图层类也是渲染框架中很重要的内容。场景用来划分游戏状态,图层通常来划分游戏的画面。

引擎中通过【CCLayer】提供了上述图层的功能,引擎中的图层对象包含三个功能:

· 接收用户操作,比如触屏,重力加速度计的信息。

· 作为游戏内容元素的容器,用于显示游戏画面,承载精灵类、字体文本等对象。

· 填充北京游戏游戏背景颜色。

通常添加图层的时候,开发者就可以设置图层顺序。因为图层顺序决定了渲染的次序以及交互信息传递的顺序,所以图层将通过由远到近的方式进行绘制。

由于Cocos2D-X是开源的,具体CCLayer类的内容,进入CCLayer.h中查看

/** createone layer */

    static CCLayer *create(void);

 

    virtual void onEnter();//进入图层时回调

    virtual void onExit();//退出图层时回调

    virtual void onEnterTransitionDidFinish();//场景转换之后,回调函数

   

    // default implements are used to call script callback if exist,用户操作交互函数,单点触碰

    virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);

    virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);

    virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);

    virtual void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);

 

    // default implements are used to call script callback if exist,用户交互操作函数,多点触碰

    virtual void ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent);

    virtual void ccTouchesMoved(CCSet *pTouches, CCEvent *pEvent);

    virtual void ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent);

    virtual void ccTouchesCancelled(CCSet *pTouches, CCEvent *pEvent);

   

    virtual void didAccelerate(CCAcceleration* pAccelerationValue) {CC_UNUSED_PARAM(pAccelerationValue);}

    virtual void registerWithTouchDispatcher(void);//注册脚本触碰事件

     /** Register script touch events handler*/

    void registerScriptTouchHandler(int nHandler, bool bIsMultiTouches = false, int nPriority = INT_MIN, bool bSwallowsTouches = false);//设置触碰方式,优先级等

    /** Unregister script touch events handler,注销脚本触碰事件 */

    void unregisterScriptTouchHandler(void);

 

    /** whether or not it will receiveTouch events.

    You can enable /disable touch events with this property.

    Only the touches ofthis node will be affected. This "method" is not propagated to it's children.

    @since v0.8.1

    */

    bool isTouchEnabled();//返回图层是否接受触碰操作

    void setTouchEnabled(bool value);//设置图层是否接受触碰操作

    /** whether or not it will receiveAccelerometer events

    You can enable /disable accelerometer events with this property.

    @since v0.8.1

    */

    bool isAccelerometerEnabled();//返回层是否接受加速计的信息

    void setAccelerometerEnabled(bool value);//设置图层是否接受加速剂的信息

    /** whether or not it will receivekeypad events

    You can enable /disable accelerometer events with this property.

    it'snew in cocos2d-x

    */

    bool isKeypadEnabled();//返回是否接受键盘按钮

    void setKeypadEnabled(bool value);//设置是否接受键盘按钮

 

· 为了合理的为游戏分层,引擎按照由息内容提供了一套特殊的图层类。比如处理菜单的【CCMenu】和初恋颜色显示的颜色层【CCColorLayer】等。下面列举3CCLayer的子类,它们具有一些各自的特点。

· CClayerColor】颜色层

·    颜色层在游戏主要用来烘托背景,例如,暂停的时候,添加个半透明的颜色层来遮挡游戏内容。开发者可以通过RGB设置填充颜色,同时还可以设置图层的透明度,具体看CCLayerColor.h中的内容。

CCMenu】菜单图层

这是一个一按钮对象为集合的UI图层,专门用于处理与玩家之间操作界面的交互。菜单图层中主要存放着许多【CCMenuItem】以及它的子类。CCMenuItem是引擎中各式各样的按钮父类。

CCMultiplexLayer】复合层

就是他可以包含多个混合层,通常用来实现游戏的主画面,显示游戏所需要的元素,也就是精灵。同时还存在一些按钮,比如,暂停返回什么的。几乎所有游戏都会用到复合层。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值