读书笔记Cocos2d-x之场景、层

来源:互联网 发布:ai人工智能教程 编辑:程序博客网 时间:2024/05/18 19:20

Scene:场景

在Cocos2d-x中,Scene定义了一个场景。场景只是层的容器,包含了所有需要显示的游戏元素。场景还有一个作用就是流程控制。利用Director::replaceScene等方法,可以使游戏在不同场景中自由切换。


Layer:层

Layer定义了一个层,同场景类似,层也扮演着容器的角色。然而与场景不同的是,层通常包含的是直接呈现在屏幕上的具体内容:我们需要在层中放入精灵、文本标签或其他游戏元素;设置游戏元素的属性,如位置、方向和大小;设置游戏元素的动作等。由此可见,游戏开发的大部分编码时间都用在创建层上。通常层中的对象功能类似,耦合较紧,与层中游戏内容相关的逻辑代码也编写在层中。

在组织好层后,只需要把层按照顺序添加到场景中就可以显示出来了

(1)addChild方法:其中child参数为将要添加的节点。对于场景来说,通常我们添加的节点就是层。先添加的层会被置于后添加的层之下。如果想要为它们指定先后次序,可以使用不同的zOrder值,zOrder代表了该节点下元素的先后次序,值越大则显示顺序越靠上。zOrder的默认值为0.tag是元素的标识码,如果为子节点设置了tag值,就可以在她的父节点中利用tag值找到它。

1、Node::addChild(Node *child)

2、Node::addChild(Node *child, int zOrder)

3、Node::addChild(Node *child, int localZOrder, int tag)

例:

this->addChild(backgroundLayer,0);

this->addChild(actionLayer,100);

this->addChild(touchLayer,200);

this->addChild(menuLayer,500);

(2)Layer输入事件:

1. Layer::setTouchEnabled(bool enabled):获取或设置是否接受触摸事件

2.Layer::setAccelerometerEnabled(bool enabled):获取或设置是否接受加速度计事件

3.Layer::setKeypadEnabled(bool enabled):获取或设置是否启用键盘输入支持

4.带目标的触摸事件的回调函数:ccTouchBegan, ccTouchEnded, ccTouchMoved, ccTouchCancelled, 

5. 标准触摸事件的回调函数:ccTouchesBegan,ccTouchesMoved,ccTouchesEnded,ccTouchesCancelled

6.注册触摸事件的回调函数,在此函数内设置需要注册的触摸类型:registerWithTouchDispatcher

7.加速度计改变事件的回调函数:didAccelerate


0 0