一.addchild
virtual void addchild( Node * child , int localZOrder , int tag )添加一个子节点到容器中,有Z轴顺序和一个标记。
1.如果子节点被添加到了一个“running(活动着的)”节点,那么'onEnter'和 'onEnterTransitionDidFinish' 将会立即调用。
2.参数解析
addChild:是指要添加的子成员(Node *类型,可移式Sprite, Layer等等);
z:是指添加的ZOrder值,ZOrder是指该成员的层级(也可以说深度),z值大的成员在z值小的成员的上面,上面的会覆盖下面的,0的话就是最低的层级,层级一样的话根据谁后绘制的就覆盖先绘制的。层级不同的时候,还是可以进行物理碰撞。
tag:是指该成员的tag值,tag值是一个成员的标识,如果丢掉了这个变量,可以通过getChildByTag(tag)把这个成员找到。
3.例子
bulletBox->addChild(bullet, 0, GameScene::HERO_BULLET_TAG);
GameScene::HERO_BULLET_TAG为一个enum中的值,为102
二.removeChild
virtual void removeChild ( Node * child , bool cleanup )从容器中删除一个孩子,取决于cleanup参数,同时可能会清除所有的活动的动作。
1.参数解析
child 希望被删除的子节点。
cleanup 为true 表示在这个节点上所有的动作和回调都会被删除, false 就不会删除。