zoukankan      html  css  js  c++  java
  • Cocos2d-x学习笔记(五)之 节点类CCNode

      节点类(CCNode) 是Cocos2D-x 中的主要类, 继承自CCObject,节点类的继承关系如下:

      CCNode-->CCObject-->CCCopying。

      任何需要画在屏幕上的对象都是节点类。最常用的节点类包括场景类(CCScene)、布景层类(CCLayer)、人物精灵类(CCSprite)、菜单类(CCMenu)。CCNode 类包括的主要功能如下:

      1)每个节点都可以含有子节点。

      2)节点含有周期性回调的方法(Schedule、Unschedule 等)。

      3)可以含有动作(CCAction)。

      CCNode 可以为它自己和它的子节点添加额外的功能。无论是CCNode 运行的动作(CCAction),还是设置的旋转角度和位置等属性,父节点的设置都可以传递到子节点上,这点在一些游戏的开发中可以使我们的管理更轻松。比如某些纵版射击游戏,玩家控制的主角飞机需要携带子机,子机的移动位置要随着主机一起移动,我们就可以把子机设置为主机的子节点,这样,在设置位置的时候,只需要设置主机的位置就可以了,大大减少了程序员需要处理的内容,提高了代码的清晰度和可读性。

      由于CCNode 类不自带贴图,其实在屏幕上看不到任何节点类的效果,所以一般使用CCNode 类的场合有两个:第一个情况就是,需要一个父节点来管理一批子节点,这时候可以设置一个“无形”的子节点来管理子节点;另一种情况就是有时需要自己定义一个在屏幕上显示的对象,这时候让新定义的这个类继承自CCNode。一个类继承自CCNode 类,说明它有如下特点:

      1)重写初始化的方法和周期性回调方法。

      2)在时间线上控制回调。

      3)重写渲染的绘制方法。

      CCNode 类不含有贴图,它可以进行位置的平移、大小的伸缩变化、旋转变化。在网格特效使用的时候,网格特效可以获得屏幕中绘制的内容,并且对获得的屏幕内容进行渲染。这点在游戏中需要一些全屏特效的时候可以使用。

      成员数据(公共成员数据):

      m_bIsRunning:这个节点是否在运行。

      m_bIgnoreAnchorPointForPosition:是否忽略锚点的位置。

      成员函数

      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:返回从世界坐标到本地节点坐标的矩阵变换仿射矩阵。

      以上就是CCNode的主要的成员函数,好了,CCNode类的学习就先到这里了。

  • 相关阅读:
    小程序方法-小程序获取上一页的数据修改上一个页面的数据
    小程序方法-上传多上图片
    小程序方法-时间转换年月日,时间转换几天前几个小时前刚刚
    opencv函数学习:LUT()的使用
    opencv函数学习:cvtColor()的使用
    opencv函数学习:convertTo()的使用
    BITMAPFILEHEADER、BITMAPINFOHEADER及BMP结构详解
    单通道图和三通道图
    计算机存储单位与宽带单位
    大端模式和小端模式
  • 原文地址:https://www.cnblogs.com/atong/p/3270745.html
Copyright © 2011-2022 走看看