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

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    《白帽子讲web安全》学习笔记(第一篇)
    pytorch安装配置(VScode +miniconda+pytorch)
    tensorflow-GPU安装配置(VScode +miniconda+tensorflow-gpu)
    Win10+VScode +miniconda安装tensorflow(CPU版本)
    The TensorFlow library wasn't compiled to use SSE instructions解决方法
    python安装配置(miniconda版)(Win10+VScode +miniconda)
    Git使用方法
    PDF快速导出为word(免费方法)
    CAJ文件转PDF
    拖拽的效果 第一步 设置 可拖拽的属性 draggable="true" 绑定drag 事件 第二步 设置 放置位置 触发的事件 dragover 第三步 设置 放置之后 触发的事件 dragover 下面请看代码:
  • 原文地址:https://www.cnblogs.com/zhangweia/p/3521380.html
Copyright © 2011-2022 走看看