读书笔记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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |