Cocos2d-x学习笔记(七)之 布景层类CCLayer

  布景层类CCLayer 是CCNode 类的子类, 并且在此基础上实现触屏事件代理(TouchEventsDelegate)协议,可以实现CCNode 类的功能,并且可以处理输入,包括触屏和加速度传感器。每个游戏场景中可以有很多层,每一层负责各自的任务,如专门负责显示地图的背景、专门负责显示敌人、专门负责机关和专门负责主角等;每一层上可以放置不同的元素,包括文本、精灵图片和菜单等。通过层与层之间的组合关系,就可以构成游戏显示的界面UI,游戏中等。当然为了看到每一层的东西,可把一些层设置为透明或半透明的,这样就可以看到不同布景层叠加到一起的效果了。CCLayer类的继承关系如下:(CCLayer 类继承自CCNode 类,并且CCLayer 类还遵照触屏代理协议、加速度传感器代理协议、键盘时间代理协议等协议。)

  CCLayer-->CCNode、CCTouchDelegate、CCAcceleromelerDelegate、CCKeypadDelegate。

  成员函数如下

  init:初始化CCLayer。

  onEnter:当进入布景层时被调用。

  onExit:当离开布景层时被调用。

  onEnterTransitionDidFinish:过场动画结束时调用。

  ccTouchBegan:触屏触摸屏幕。

  ccTouchMoved:触屏移动。

  ccTouchEnded:触屏结束。

  ccTouchCancelled:触屏取消。

  ccTouchesBegan:触屏触摸屏幕(多点触控)。

  ccTouchesMoved:触屏移动(多点触控)。

  ccTouchesEnded:触屏结束(多点触控)。

  ccTouchesCancelled:触屏取消(多点触控)。

  didAccelerate:加速度传感器。

  registerWithTouchDispatcher:如果触屏被允许,这个方法在init 里调用。

  isTouchEnabled:获得是否触屏。

  setTouchEnabled:设置触屏。

  isAccelerometerEnabled:是否获得加速度传感器。

  setAccelerometerEnabled:设置获得加速度传感器。

  isKeypadEnabled:是否获得键盘事件。

  setKeypadEnabled:设置获得键盘事件。

  

  1、定义布景层并把它加入到场景中

1     // 创建场景
2     CCScene *scene = CCScene::create();
3     
4     // 创建布景层
5     HelloWorld *layer = HelloWorld::create();
6 
7     // 把布景层加入到场景中
8     scene->addChild(layer);

  2、CCLayer中的init函数在创建布景层时被调用,在init 函数中定义要显示的对象并把它作为子类加入场景中。

 1 bool HelloWorld::init()
 2 {
 3     if ( !CCLayer::init() )
 4     {
 5         return false;
 6     }
 7      
 8     //定义要显示的对象并把它们添加到场景中
 9 
10     return true;
11 }

好了,布景层就先介绍到这里了,布景层类有很多种子类,比如:CCLayerColor(实现 CCRGBAProtocol 协议,可设置层的颜色和不透明度)、CCLayerMultiplex(可以将它和子布景层结合在一起)、CCMenu(菜单布景层)、CCControl(UI 控件)、CCScrollView(支持Cocos2D-iPhone 的滚动视图)等。下面就会分别对这些比较重要的子类进行介绍和对其的使用方法。

原文地址:https://www.cnblogs.com/atong/p/3272657.html