理论部分

Node类继承自Ref类,是cocos框架中基础底层的一个封装类,与画面渲染相关的类一般都是继承自该类,例如Scene,Layer,Sprite,Sprite3D,Label,SpriteBatchNode,MenuItem,ClippingNode,DrawNode,ParticleBatchNode, ParticleSystem等都是继承自Node类。

代码部分

父子节点关系API

virtual void addChild (Node *child)
添加一个子节点到容器内,z-order是0.

virtual void addChild (Node *child, int localZOrder)
添加一个子节点到容器中,参数有一个局部Z轴顺序。

virtual void addChild (Node *child, int localZOrder, int tag)
添加一个子节点到容器中,有Z轴顺序和一个标记。

virtual void addChild (Node *child, int localZOrder, const std::string &name)
添加一个子节点到容器中,有Z轴顺序和一个名称。

virtual Node * getChildByTag (int tag) const
从容器中通过标记得到对应的子节点。

virtual Node * getChildByName (const std::string &name) const
从容器中通过名字得到对应的子节点。

virtual void setParent (Node *parent)
设置节点的父节点。

virtual Node * getParent ()
返回指向父节点的指针。

virtual Vector< Node * > & getChildren ()
返回所有子节点的数组。

virtual ssize_t getChildrenCount () const
返回子节点的总数。

virtual void removeFromParent ()
当前节点从父节点中移除,如无父节点则变化。

virtual void removeFromParentAndCleanup (bool cleanup)
当前节点从父节点中移除并设置是否清除。

virtual void removeChild (Node *child, bool cleanup=true)
从容器中移除一个子节点,并设置是否清除。

virtual void removeChildByTag (int tag, bool cleanup=true)
通过tag移除一个子节点,并设置是否清除。

virtual void removeChildByName (const std::string &name, bool cleanup=true)
通过名字移除一个子节点,并设置是否清除。

virtual void removeAllChildren ()
从容器中移除所有的子节点,并清除所有动作和回调。

virtual void removeAllChildrenWithCleanup (bool cleanup)
从容器中移除所有的子节点, 并设置是否清除。

virtual void reorderChild (Node *child, int localZOrder)
对一个孩子设定一个新的z轴值并重新排序。

virtual void sortAllChildren ()
在绘画之前,排列所有的孩子数组一次,而不是每次添加或者删除子节点时都排序。 这个方法可以大幅度地提高性能。

template<typename T >
T getChildByName (const std::string &name) const
通过名字获得一个子节点对象,并且这个节点对象可以被转换为类型T。

virtual void enumerateChildren (const std::string &name, std::function< bool(Node *node)> callback) const
在子节点中寻找匹配名字或正则表达式的节点并对这些节点执行回调函数。

标签和用户数据

virtual int getTag () const
返回一个用来更简单分辨节点的标记。

virtual void setTag (int tag)
改变这个用来分辨节点的标记。

virtual std::string getName () const
返回用于识别节点的名字。

virtual void setName (const std::string &name)
设置用于识别节点的名字。

virtual void setUserData (void *userData)
设置一个用户自定义数据的指针

virtual void * getUserData ()
返回一个用户自定义数据的指针

图形属性设置相关API

virtual void setAnchorPoint (const Vec2 &anchorPoint)
设置锚点,用百分比表示。

virtual const Vec2 & getAnchorPoint () const
返回用百分比表示的锚点。

virtual void ignoreAnchorPointForPosition (bool ignore)
设置当前节点的锚点为(0, 0)。

virtual bool isIgnoreAnchorPointForPosition () const
判断当前节点的锚点是否为默认(0,0)

virtual void setPosition (const Vec2 &position)
设置当前节点在父节点中的位置。

virtual const Vec2 & getPosition () const
得到当前节点在父节点中的位置。

virtual void setPositionX (float x)
设置当前节点在父节点X坐标

virtual float getPositionX (void) const
获取当前节点在父节点X坐标

virtual void setPositionY (float y)
设置当前节点在父节点Y坐标

virtual float getPositionY (void) const
获取当前节点在父节点Y坐标

virtual void setZOrder (int localZOrder)
设置当前节点的局部Z顺序

virtual int getZOrder () const
得到当前节点的局部Z顺序

virtual void setContentSize (const Size &contentSize)
设置不转换节点的大小。

virtual const Size & getContentSize () const
返回节点未变形状态下的大小。

virtual void setVisible (bool visible)
设置节点是否可见。

virtual bool isVisible () const
判断节点是否可见。

virtual void setScale (float scale)
设置该节点的缩放因子。

virtual float getScale () const
得到该节点的缩放因子。

virtual void setScaleX (float scaleX)
设置节点的缩放(x)。

virtual float getScaleX () const
返回该节点的X轴的缩放因子。

virtual void setScaleY (float scaleY)
设置节点的缩放(y)。

virtual float getScaleY () const
返回该节点的Y轴的缩放因子。

virtual void setScaleZ (float scaleZ)
改变该节点的Z轴的缩放因子。

virtual float getScaleZ () const
返回该节点的Z轴的缩放因子。

virtual void setGlobalZOrder (float globalZOrder)
设置当前节点的全局Z顺序

virtual float getGlobalZOrder () const
返回当前节点的全局Z顺序。

virtual void setPosition3D (const Vec3 &position)
设置当前节点在父节点3D坐标。

virtual Vec3 getPosition3D () const
获取当前节点在父节点3D坐标。

virtual void setPositionZ (float positionZ)
设置当前节点在父节点z坐标

virtual float getPositionZ () const
获取当前节点在父节点z坐标

virtual void setSkewX (float skewX)
改变该节点X轴的倾斜角,单位是度。

virtual float getSkewX () const
返回该节点的X轴倾斜角,单位是度。

virtual void setSkewY (float skewY)
改变该节点Y轴的倾斜角,单位是度。

virtual float getSkewY () const
返回该节点的Y轴倾斜角,单位是度。

virtual void setRotation (float rotation)
设置节点的旋转角度。

virtual float getRotation () const
返回节点的旋转角度。

virtual void setRotation3D (const Vec3 &rotation)
设置3D(X,Y,Z)旋转角度。

virtual Vec3 getRotation3D () const
获取(X,Y,Z)的旋转角度。

virtual void setRotationX (float rotationX)
设置X轴节点的旋转角度。

virtual float getRotationX () const
得到X轴节点的旋转角度。

virtual void setRotationY (float rotationY)
设置节点Y轴的旋转角度。

virtual float getRotationY () const
获得节点Y轴的旋转角度。

int getOrderOfArrival () const
返回到达顺序,指出哪一个子类先被添加。

virtual const Vec2 & getAnchorPointInPoints () const
返回锚点的绝对像素位置

void setGLServerState (int serverState)
int getGLServerState () const
virtual void ignoreAnchorPointForPosition (bool ignore)
设置抹点为(0,0)当你摆放这个节点的时候。

virtual void setNormalizedPosition (const Vec2 &position)
设置归一化位置坐标(x, y),使用从0到1的归一化值。

virtual const Vec2 & getNormalizedPosition () const
得到在父节点坐标系中节点归一化的位置(x,y)。

virtual void setRotationQuat (const Quaternion &quat)
通过四元数来设置3D空间中的旋转角度。你要保证四元数是经过归一化的。

virtual Quaternion getRotationQuat () const
获取四元数表达的3D空间旋转角度。

节点执行动作API

virtual void setActionManager (ActionManager *actionManager)
给当前节点设置动作全局管理单例对象。

virtual ActionManager * getActionManager ()
得到当前节点的动作全局管理单例对象。

virtual Action * runAction (Action *action)
当前节点执行一个动作。

void stopAllActions ()
移除当前节点所有执行动作。

void stopAction (Action *action)
移除当前节点指定动作。

void stopActionByTag (int tag)
根据动作标识,移除当前节点指定动作。

void stopAllActionsByTag (int tag)
通过动作的标记从活动动作列表中删除动作。

Action * getActionByTag (int tag)
通过动作的标记从活动动作列表中得到一个动作。

计时回调和事件回调API

void schedule (SEL_SCHEDULE selector)
调度一个自定义的选择器,这个选择器将逐帧被调用。

void schedule (SEL_SCHEDULE selector, float interval)
调度一个自定义的选择器,以指定一个设定的时间间隔被调用,单位秒。

void schedule (SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay)
调度一个自定义的选择器,intrerval间隔时间(秒),repeat调用次数,delay延时起效。

void schedule (const std::function< void(float)> &callback, const std::string &key)
调度一个自定义的lambda回调函数,这个回调函数将会每帧被调用,key为调度器标记。

void schedule (const std::function< void(float)> &callback, float interval, const std::string &key)
调度一个lambda回调函数,并指定调度的时间间隔(以秒为单位),key调度器标记。

void schedule (const std::function< void(float)> &callback, float interval, unsigned int repeat, float delay, const std::string &key)
调度一个lambda回调函数

void unschedule (SEL_SCHEDULE selector)
取消调度一个自定义的选择器。

void unschedule (const std::string &key)
通过key标记取消调度一个lambda回调函数

virtual void setScheduler (Scheduler *scheduler)
设置一个调度器对象来用于调度所有的“update”和定时器。

virtual Scheduler * getScheduler ()
得到调度器对象。

bool isScheduled (SEL_SCHEDULE selector)
检查一个选择器是否在调度中。

bool isScheduled (const std::string &key)
检查一个lambda函数是否在调度中。

void scheduleUpdate (void)
调度"update"方法。

virtual void update (float delta)
scheduleUpdate默认的指定的回调方法,逐帧调用。

void scheduleUpdateWithPriority (int priority)
使用一个自定义优先级调度"update"方法。

void unscheduleUpdate (void)
停止并取消调度update方法

void scheduleOnce (SEL_SCHEDULE selector, float delay)
调度一个只运行一次的选择器,伴随着一个0或者更大的延时。

void scheduleOnce (const std::function< void(float)> &callback, float delay, const std::string &key)
调度一个只运行一次的lambda回调函数,伴随着一个0或者更大的延时和一个key来标记这个回调。

void unscheduleAllCallbacks ()
取消调度所有选择器和回调函数,以及update调度。

virtual void resume (void)
恢复所有的调度过的选择器,动作和事件监听器。 这个方法被onEnter方法在内部调用。

virtual void pause (void)
暂停所有的调度过的选择器,动作和事件监听器。 这个方法被onExit方法在内部调用。

void resumeSchedulerAndActions ()
恢复所有的调度过的选择器,动作和事件监听器。 这个方法被onEnter方法在内部调用。

void pauseSchedulerAndActions ()
暂停所有的调度过的选择器,动作和事件监听器。 这个方法被onExit方法在内部调用。

cocos代码研究(1)Node学习笔记的更多相关文章

  1. node学习笔记(二)(ajax方式向node后台提交数据)

    通过ajax向node后台提交数据过程(附手写前后台代码),并总结post与get的区别 POST 前台代码 //CSS简单给点样式 <style> form{ width: 200px; ...

  2. node学习笔记第一天

    ES6---* JavaScript语言随着使用的人越来越多,ECMA语法规范:if/else* 为了让js语言更适应大型应用的开发.旨在消除一些怪异的行为 ### 包含内容(strict严格模式)- ...

  3. cocos代码研究(5)Action学习笔记

    理论部分 Action类也是cocos核心基础类之一,在游戏中起着非常重要的作用,继承自Ref,被 FiniteTimeAction(有限时间动作), Follow , 以及 Speed 继承. 有限 ...

  4. cocos代码研究(12)UI之Widget学习笔记

    理论基础 Widget类,所有UI控件的基类. 这类继承自ProtectedNode和LayoutParameterProtocol. 如果你想实现自己的UI控件,你应该继承这个类. 被 VideoP ...

  5. cocos代码研究(7)即时动作子类学习笔记

    理论部分 即时动作是会立即被执行的动作.他们没有持续时间动作(ActionInterval)的持续时间属性.继承自 FiniteTimeAction.被 CallFunc, FlipX, FlipY, ...

  6. cocos代码研究(2)Label学习笔记

    理论部分 Label类继承自Node类,中文翻译文字与字体,通常在应用开发中为模块作为提示和描述的作用,主要有3中不同的创建方式. 1.通过ttf字体包创建,通过指定本地已有的ttf格式的字体文件,创 ...

  7. cocos代码研究(16)Widget子类RadioButton学习笔记

    理论基础 RadioButton是一种特定类型的两状态按钮,它与复选框相似.它可以 和RadioButtonGroup一起使用,形成一个"组".继承自AbstractCheckBu ...

  8. cocos代码研究(13)Widget子类EditBox学习笔记

    理论基础 一个用来输入文本的类,继承自 Widget , 以及 IMEDelegate. 代码部分 Public枚举类型 enum KeyboardReturnType键盘的返回键类型. enum I ...

  9. cocos代码研究(11)ActionManager类学习笔记

    理论部分 ActionManager是一个单例类,管理所有动作. 通常你不需要直接使用这个类.大多情况下,你将使用Node的接口,它提供了更友好的封装 但也有一些情况下,你可能需要使用这个单例. 示例 ...

随机推荐

  1. 异构GoldenGate 12c 单向复制配置

    1.分别在windows2008.linux平台部署oracle 11.2.0.4 2.分别在windows2008.linux平台部署gg. 2.1 windows平台: gg的安装目录位 C:\o ...

  2. [转]centos6 与 7 其中的一些区别

    # vi /etc/ssh/sshd_config #将MaxAuthTries注释去掉 MaxAuthTries 5(登录次数) UseDNS no   默认是yes 的,把这个改为no,可以大大减 ...

  3. Internet Explorer 9 已安装在此系统上

    问题: win7系统,IE11浏览器,想换成IE9,安装IE9的时候,提示错误. 解决方案: 方案一: 1.打开 控制面板--程序--程序和功能--点击打开或者关闭Windows功能,找到Intern ...

  4. matlab中 数据保留有效位数

    可以使用round函数  ,这函数原本功能是四舍五入 比如: >> A = 0.0326465;>> B = round(A*1000)/1000 B = 0.0330

  5. 上拉刷新和下拉刷新的两种方法(包括使用第三方库MJRefresh)

    一.使用苹果原生的方法 1.下拉刷新 2.上拉刷新 (1 首先要新建一个footer得XIB文件,当然同时包括对应的控制器文件,例如在XIB文件中可以如下拖拉对应的控件 (2 然后在代码文件中写一个实 ...

  6. TOP100summit 2017:小米唐沐等大咖精心挑选的100个年度研发案例实践

    2017年,机器学习.大数据.人工智能等词汇成为软件研发行业的主流,大前端.DevOps.区块链等技术方式成为热点方向:2017年,智能硬件开始成为新的焦点,这一年更被称为智能音箱井喷的一年:2017 ...

  7. 专访msup创始人兼CEO刘付强:追求卓越是数据时代下企业和个人的生存之道

    近些年,"信息化带动工业化"策略的深入人心,这为信息技术本身开辟了一个更加广阔的应用天地,在这样的大环境下国内IT培训市场得了飞速发展.那么在云计算.大数据时代,如何让企业的IT团 ...

  8. 安装支持eigen线性迭代的ceres_solver

    Ceres可以求解以下形式的有界约束非线性最小二乘问题: 这种形式的问题来源于科学工程的多个领域,从统计学的曲线拟合到计算机视觉中从图像中构建三维模型. 最近在做sfm方面的重建问题,需要对得到的相机 ...

  9. mongo_action

    https://docs.mongodb.com/manual/introduction/ { name: "sue", age: 3, status: "A" ...

  10. cross browse compatible

    不过我之前用过一个Chrome的插件叫浏览器兼容性检测工具,可以在内网测试,会自动监测网页的设计是否满足对应浏览器及版本的规范,不满足的话就会详细提示出来,不过有些过于专业性了,更适合开发人员查看,测 ...