微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐