cocos2d-x 的節點操做涉及到如下幾點css
1. 節點之間的關係html
2. 節點的添加操做node
3. 節點的刪除操做算法
4. 節點的查找操做spa
5. 節點的替換操做code
6. 節點屬性操做htm
0. 節點操做相關參數blog
/** 當前節點的Z軸順序 **/ private int m_nZOrder = 0; /** 當前節點的子節點 **/ private Vector m_vChildren = new Vector(); /** 當前節點的父節點 **/ private CCNode m_Parent;
1. 節點之間的關係排序
2. 節點的添加操做ip
/**
* addChild(給當前節點添加子節點) * @Title: addChild * @Description: * 1. 若是節點爲null或者已經有父節點的話則退出 * 2. 節點的插入採用插入排序的算法 * @param _node : 子節點 * @param _zOrder : z軸序列 * @param tag : 標識符 * @return void 返回類型 */ public void addChild(CCNode _node,int _zOrder,int tag) public void addChild(CCNode _node,int _zOrder) public void addChild(CCNode _node)
在添加節點的時候,爲了保證添加的zOrder序列都在對應的位置,咱們在每次添加節點的時候,都進行一次排序
/** * sortChildrens(排序全部節點) * @Title: sortChildrens * @Description: TODO */ public void insertSortChildrens(CCNode node) { int len = m_vChildren.size(); if(len == 0) { m_vChildren.addElement(node); return; } //倒插排序法 for(int i = len-1;i >= 0;i--) { if(node.getZOrder() >= ((CCNode)m_vChildren.elementAt(i)).getZOrder()) { m_vChildren.insertElementAt(node, i+1); return; } } }
3. 節點的刪除操做
* public void removeChild(CCNode node,boolean cleanup) * public void removeChild(CCNode node) * public void removeFromParentAndCleanup(boolean cleanup) * public void removeFromParent() * public void removeAllChildrenWithCleanup(boolean cleanup) * public void removeChildByTag(int tag,boolean cleanup)
4. 節點的查找操做
* public CCNode getChildByTag(int tag) * public CCNode getChildIndex(int index)
5. 節點的替換操做
/** * * reorderChild(從新排序當前節點的Z軸序列) * @Title: reorderChild * @Description: TODO * @param node : 當前節點 * @param zOrder : Z軸序列 * @return void 返回類型 */ public void reorderChild(CCNode node,int zOrder)
6. 節點屬性操做
* public Vector getChildren() * public int getChildrenCount()
7