与 Scene 类似,层也扮演着容器的角色。
然而与场景不同的是,层通常包括的是直接呈如今屏幕 上的详细内容: 我们须要在层中放入精灵、文本标签或其它游戏元素; 设置游戏元素的属性。如位置、方向和大小; 设置 游戏元素的动作等。 由此可见。游戏开发的大部分编码时间都用在创建层上。 通常,层中的对象功能类似。耦合较紧,与 层中游戏内容相关的逻辑代码也编写在层内。 在组织好层后,仅仅须要把层依照顺序加入到场景中就能够显示出来了。 要向场景中加入层,我们能够使用 addChild 方法。 addChild 方法共同拥有三个定义,详细例如以下所看到的: void addChild(Node* child); //Adds a child to the container with z-order as 0. void addChild(Node* child, int localZOrder); void addChild(Node* child, int localZOrder, int tag); 当中 child 參数为将要加入的节点。 对于场景而言,通常我们加入的节点就是层。先加入的层会被置于后加入的层之下。
假设想要为它们指定先后次序。能够使用不同的 localZOrder值,localZOrder代表了该节点下元素的先后次序。值越大则显示顺序越 靠上。 localZOrder的默认值为 0。 tag 是元素的标识号码,假设为子节点设置了 tag 值,就能够在它的父节点中利用 tag 值找到 它了。 这里我们能够选择自己须要的方法来向场景中加入层。 在之前的文章中提到的找小三游戏场景的构成中,找小三游戏的场景大致由背景层(backgroundLayer)、动作层 (actionLayer)、触摸层(touchLayer)和菜单层(menuLayer)组成。 如果这些层已经完毕,那么我们最后要做的就是 在游戏场景的初始化方法中把它们加入到场景中: this->addChild(backgroundLayer, 0); this->addChild(actionLayer, 100); this->addChild(touchLayer,200); this->addChild(menuLayer, 300); Layer 的还有一个十分重要的功能是能够接受用户输入事件。包含触摸、加速度计和键盘输入等。 在cocos2d-x 3.0曾经版本号,层与用户输入事件相关的成员如表所看到的。 而在3.0版本号中。採用了事件分发的机制:触摸事件(EventListenerTouch)
键盘响应事件(EventListenerKeyboard)
加速记录事件(EventListenerAcceleration)
鼠标对应事件(EventListenerMouse)
自己定义事件(EventListenerCustom)
事件分发器 EventDispatcher
事件类型 EventTouch, EventKeyboard 等
事件监听器 EventListenerTouch, EventListenerKeyboard 等
版权声明:本文博客原创文章,博客,未经同意,不得转载。
转载于:https://www.cnblogs.com/bhlsheji/p/4737282.html