zoukankan      html  css  js  c++  java
  • 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

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    最短路 dijkstra 优先队列
    树状数组+二分答案查询第k大的数 (团体程序设计天梯赛 L3-002. 堆栈)
    c++优先队列(堆)
    团体程序设计天梯赛 L3-012. 水果忍者
    团体程序设计天梯赛 L2-028. 秀恩爱分得快
    团体程序设计天梯赛 L1-049. 天梯赛座位分配(测试数据+不同方法)
    奇偶校验——设计可以检验错误位置的方法
    奇偶校验的错误概率
    Fibonacci数列时间复杂度之美妙
    团体程序设计天梯赛 L3-016. 二叉搜索树的结构
  • 原文地址:https://www.cnblogs.com/zhangweia/p/3521380.html
Copyright © 2011-2022 走看看