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

Cocos2d-x CCNode(节点类)概述的更多相关文章

  1. HTML利用九宫格原理进行网页布局

    这篇文章主要介绍了HTML利用九宫格原理进行网页布局,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. ios – 围绕x轴旋转AVAssetWriter的输出180度

    我正在使用AVAssetWriter创建一个Quicktime电影文件.目前输出视频是“倒置”.理论上,我可以通过围绕水平轴旋转180度来纠正这个问题.最好的方法是什么?Appledocs和wikipedia都没有明确说明仿射变换矩阵是如何工作的.并且可能有更好的方式.解决方法如果要围绕z轴旋转视频180度,或者如果你想在x轴上反射

  3. 从IOS / iPad / iPhone的最大速度

    我使用OpenCVforiOS完成计算密集型应用程序.当然这很慢.但它比我的PC原型慢了200倍.所以我正在优化它.从最初的15秒,我能够获得0.4秒的速度.我想知道我是否找到了所有的东西以及别人想要分享的东西.我做了什么:>将OpenCV中的“double”数据类型替换为“float”.双倍是64位,32位cpu不能轻易处理,所以浮动给了我一些速度.OpenCV经常使用双倍.>为编译器选项添加了

  4. ios – CGAffineTransformInvert:奇异矩阵

    我偶尔会看到错误消息:在Xcode的日志记录区域.当我在UIWebView中调整网站大小时,这似乎很少发生.[商业网站,不是我自己的.]由于我在我的应用程序中没有进行仿射转换,我想知道这可能是UIWebView的错误/功能.如果是这样,我可以忽略它,因为它似乎没有干扰任何东西吗?解决方法通过查看其他帖子,如果您尝试将缩放比例设置为零,则会显示此消息.当您捏合并查看它是否为零时,NSLog对缩放值有用.

  5. 如何在iOS中使用GL_HALF_FLOAT_OES类型的纹理?

    谢谢!

  6. 在iOS ARM设备(iPhone 4)上支持非正常IEEE 754浮点数

    >可以将iOS系统设置为提供对正常数量的支持,而不要求编译器仅生成完整的软件浮点代码?是.这可以通过将FPSCR中的FZ位设置为零来实现:请注意,当遇到可观量的非正常值时,这可能会导致应用程序性能的显着下降.您可以恢复默认浮点状态,然后再调用任何不使ABI保证在非默认模式下正常工作的代码:请提交bugreport请求,为iOS中的FP操作模式提供更好的文档.

  7. ios – 舍入集合视图的浮点值时出错

    我想在我的设备上摆脱一个像素问题.我正在设计一个如下所示的日历我正在为此目的使用UICollectionViewCell问题是,如果我增加宽度甚至0.0000001点,那么每行绘制的单元格数量是6而不是7.我已尝试增加UIEdgeInset(0.00001),但这是同样的问题.流布局的属性已正确设置.如何在不留空隙的情况下使单元尺寸保持一致?电池的实际宽度为53.571428571428569(3

  8. Swift教程05-基本数据类型(一)整型浮点型

    Swift的基本数据类型与Oc的数据类型有一些不同;除了写法改变了一些之外,还增加了一些类型,下面来由浅入深的介绍其基本数据类型注意:基本数据类型以大写字母开头,不同于C语言!

  9. swift基本语法—变量和常量—整型-浮点型 -布尔型 bool

    swift基本语法——变量和常量swift语言中声明变量使用var关键字,声明常量使用let关键字importFoundationvarStr="helloworld"//Str是变量varnum:StringletInstrationCount:Int=2//InstrationCount是常量vartemp:Float32=2.8//Str=1024//编译会失败,不能修改常量//varNum

  10. Swift学习笔记二十三——Swift泛型初识

    泛型的概念在Java中也是存在的,泛型可以使代码更为精炼,是对数据类型使用的一种优化。如果此时又多了一个需求,需要判断两个浮点型的是否相等。那怎么办,代码实现基本和上面一样,不过我们又得重新写一遍浮点型的代码:。以上两个代码将会导致代码可重用性变差且变得冗余,如果使用泛型来实现,将会变得很简单:.泛型的实现是不是很高大上呢。让我们的代码也提升B格吧。

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部