Cocos2d-x CCNode(节点类)概述

     QQ学习交流群:453795391    欢迎你的加入,让我们一起进步 


    节点类(CCNode) 是Cocos2D-x 中的主要类, 继承自CCObject,作者也认为CCNode是Cocos2d里面的核心类! 任何需要画在屏幕上的对象都是节点类。最常用的节点类包括场景类(CCScene)、布景层类(CCLayer)、人物精灵类(CCSprite)、菜单类(CCMenu)。

    一. CCNode的特性
    
        CCNode 类包括的主要功能如下:
            1.每个节点都可以 含有子节点.
            2.节点含有周期性回调的方法(Schedule、Unschedule 等).
            3.可以含有动作(CCAction).
        
        在CCNode中父节点的设置都可以传递到子节点上.
        比如: 以钟表主轴为子节点,当我们移动时钟时,附带在主轴(子节点)上的分钟,秒针也会一起移动!
        
        由于CCNode 类不自带贴图,其实在屏幕上看不到任何节点类的效果,所以一般使用CCNode 类的场合有两个:
            第一个情况就是,需要一个父节点来管理一批子节点,这时候可以设置一个“无形”的子节点来管理子节点;
            另一种情况就是有时需要自己定义一个在屏幕上显示的对象,这时候让新定义的这个类继承自CCNode。
            
        一个类继承自CCNode 类,说明它有如下特点:
            1.重写初始化的方法和周期性回调方法。
            2.在时间线上控制回调。
            3.重写渲染的绘制方法。
 
    二. CCNode的成员数据    
   
        m_nZOrder         整型    该节点兄弟节点的z 轴顺序。在二维游戏中,z 轴顺序决定遮挡关系
        m_fVertexZ         浮点型 在OpenGL 的真正的z 轴值
        m_fRotation     浮点型 角度制的节点旋转的角度值
        m_fScaleX         浮点值 x 轴的缩放系数
        m_fScaleY         浮点值 y 轴的缩放系数
        m_tPosition     点坐标(CCPoint)  位置坐标
        m_fSkewX         浮点值 x 轴的扭曲效果的系数
        m_fSkewY         浮点值 y 轴的扭曲效果的系数
        m_pChildren     数组 子节点数组
        m_pCamera         摄像机 跟随节点的摄像机对象
        m_pGrid         网格特效 允许节点拥有网格特效
        m_bIsVisible     布尔值 节点是否显示
        m_tAnchorPoint     点坐标节点平移或移位时的锚点,(0,0)为左下,(1,1)为右上,(0.5,0.5)为中心
        m_tAnchorPointInPoints 点坐标节点平移或移位时的锚点的绝对坐标,可读,如果需要修改,请修改上一个属性
        m_tContentSize     尺寸(CCSize)获得节点的大小(未缩放、旋转等),所有节点都有大小,场景类和布景层类的尺寸是屏幕大小
        m_tPosition     点坐标 节点坐标
        m_pParent         节点 父节点
        m_nTag             整型 节点标记
        m_pUserData     空 用户数据指针
        m_pUserObject     对象(CCObject)  类似上一个属性,存储了ID 号
        m_pShaderProgram OpenGL 程序 渲染参数
        m_nOrderOfArrival 整型 内部z 轴排序,不改变
        m_glServerState OpenGL 服务状态 OpenGL 附带的服务状态
        m_pActionManager 动作管理 用于管理所有动作
        m_pScheduler 调度类 调度所有的周期性更新



        
    三. CCNode的方法
    
        getZOrder         整型         获得兄弟节点间z 轴顺序
        getVertexZ         浮点型     获得z 轴坐标
        setVertexZ         空         设置z 坐标
        getRotation     浮点型     获得旋转角度(角度制)
        setRotation     空         设置旋转角度(角度制)
        getScale         浮点型     获得缩放系数
        setScale         空         设置缩放系数
        getScaleX         浮点型     获得x 轴缩放系数
        setScaleX         空         设置x 轴缩放系数
        getScaleY         浮点型     获得y 轴缩放系数
        setScaleY         空         设置y 轴缩放系数
        getPosition     点坐标     获得坐标位置
        setPosition     空         设置坐标位置
        getPositionX     浮点值     获得x 坐标值
        setPositionX     空         设置x 坐标值
        getPositionY     浮点值     获得y 坐标值
        setPositionY     空         设置y 坐标值
        getSkewX         浮点值     获得x 轴扭曲效果系数
        setSkewX        空 设        置x 轴扭曲效果系数
        getSkewY         浮点值     获得y 轴扭曲效果系数
        setSkewY         空         设置y 轴扭曲效果系数
        getChildren     数组         获得子节点数组
        getChildrenCount 整型         获得子节点数量
        getCamera         摄像机     获得节点摄像机
        getGrid         网格         获得网格对象
        setGrid         空         设置网格对象
        isVisible         布尔型     获得是否可见
        setVisible         空         设置是否可见
        getAnchorPoint     点坐标     获得锚点相对坐标
        setAnchorPoint     空         设置锚点相对坐标
        getAnchorPointInPoints 点坐标 获得锚点绝对坐标
        getContentSize     尺寸         获得节点的尺寸
        setContentSize     空         设置节点的尺寸
        isRunning         布尔型     获得节点是否在运行
        getParent         节点         获得父节点
        setParent         空         设置父节点
        isIgnoreAnchorPointForPosition 布尔型 是否忽略锚点位置
        ignoreAnchorPointForPosition 空 设置是否忽略锚点位置
        getTag             整型         获得标签值
        setTag             空         设置标签值
        getUserData     空            获得用户数据
        setUserData     空         设置用户数据
        getUserObject     对象         获得用户数据对象
        setUserObject     空            设置用户数据对象
        getActionManager 动作管理     获得动作管理对象
        setActionManager 空         设置动作管理对象
        getScheduler     调度         获得调度对象
        setScheduler     空         设置调度对象
        getShaderProgram 渲染参数     获得渲染参数对象
        setShaderProgram 空         设置渲染参数对象
        onEnter         空         进入节点(场景类)的对象
        onEnterTransitionDidFinish 空 场景等切换动画播放完毕进入
        onExit             空         离开节点(场景类)的对象
        onExitTransitionDidStart 空 场景等切换动画播放完毕离开
        addChild         空         添加子节点,参数可以加入z 轴排序参数,标签值
        removeFromParentAndCleanup 空 从父节点删除本节点,参数决定是否清除本节点
        removeChild     空         删除自动节点,参数为节点对象和是否清除本节点
        removeChildByTag 空         根据标签值删除节点,参数为标签和是否清除本节点
        removeAllChildrenWithCleanup 空 删除所有子节点,参数决定是否清除本节点
        getChildByTag     节点         根据标签值获得子节点
        reorderChild     空         根据z 轴值重新排列子节点,参数为节点和z 轴值
        sortAllChildren 空         在渲染前排列所有节点, 可以被reorderChild 和addChild代替。除非在某一帧里有节点的添加和删除,否则不会自动调用
        cleanup         空         停止所有的动作和调度
        draw             空         渲染函数
        visit             空         递归方法遍历到本节点和子节点并绘制它们
        runAction         动作         运行动作
        stopAllActions     空         结束所有动作
        getActionByTag     动作         根据动作标签获得动作
        stopAction         空         结束动作,传入的参数是动作指针
        stopActionByTag 空         根据标签值结束动作
        numberOfRunningActions     整型 获得运行动作数量
        transform         空 运行矩阵变化
        convertToNodeSpace         点坐标 转换为节点空间坐标,相对于节点的左下角,与锚点无关
        convertToWorldSpace     点坐标 转换为世界空间(全局绝对)坐标,与锚点无关
        convertToNodeSpaceAR     点坐标 转换为节点空间坐标,传入值和输出值都相对于锚点
        convertToWorldSpaceAR     点坐标 转换为世界空间坐标,传入值和输出值都相对于锚点
        convertTouchToNodeSpace 点坐标 从触屏对象转换为节点空间坐标
        convertTouchToNodeSpaceAR 点坐标从触屏对象转换为节点空间坐标,传入值和输出值都相对于锚点
        nodeToParentTransform 仿射变换矩返回从本地节点坐标到父节点空间坐标的矩阵变换仿射矩阵
        parentToNodeTransform 仿射变换矩返回从父节点空间坐标到本地节点坐标的矩阵变换仿射矩阵
        nodeToWorldTransform 仿射变换矩 返回从本地节点坐标到世界坐标的矩阵变换仿射矩阵
        worldToNodeTransform 仿射变换矩 返回从世界坐标到本地节点坐标的矩阵变换仿射矩阵



    先到这吧!


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值