cocos2d-x 节点操作 -->J2ME

  cocos2d-x 的节点操作涉及到以下几点

         1.  节点之间的关系

         2.  节点的添加操作

         3.  节点的删除操作

         4.  节点的查找操作

         5.  节点的替换操作

         6.  节点属性操作

0.  节点操作相关参数

    /** 当前节点的Z轴顺序 **/

    private int m_nZOrder = 0;

    /** 当前节点的子节点 **/

    private Vector m_vChildren = new Vector();

    /** 当前节点的父节点 **/

    private CCNode m_Parent;

1.  节点之间的关系

                              image

2.  节点的添加操作

    /**
      * 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

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

你可能感兴趣的:(cocos2d-x)