Cocos2d-x3.x Node源码学习

介绍

节点是场景图的基础元素。
Node类继承自Ref类。

场景图的元素必须是Node对象或它的子类。最常见的Node对象是:Scene,Layer,Sprite,Menu,Label。

节点的主要特征是:

  • 它们可以包含其他节点的对象(addChild,getChildByTag,removeChild等)
  • 他们可以安排定期的回调(schedule,unschedule,等)
  • 他们可以执行动作(runAction,stopAction,等)
函数解读:
  • public functions
    //返回节点是否活动。如果是running,它将会允许事件回调就像onEnter()、onExit()、update()
    virtual bool isRunning() const;
    
    //为lua导出的接口。可以延迟执行回调
    void scheduleUpdateWithPriorityLua(int handler,int priority);
    
    //暂停所有活动着的动作和调度器。被 ProtectedNode 和 TransitionScene 重载
    virtual void cleanup();
    
    //绘制节点
    virtual void draw(Renderer* renderer,const Mat4 &transform,bool transformUpdated);
    
    //访问节点的孩子,并且循环递归的绘制它们。
    virtual void visit(Renderer* renderer,const Mat4 &parentTransform,bool parentTransformUpdated);
    
    //返回包含Node节点的Scene,如果这个节点不属于任何场景,返回nullptr。
    //这个函数循环调用parent->getScene(),直到父类是一个Scene对象。被Scene重载。
    virtual Scene* getScene();
    
    //返回一个AABB(轴向包围盒)在它的父坐标系中
    virtual Rect getBoundingBox() const;
    
    //注册监听事件
    virtual void setEventDispatcher(EventDispatcher* dispatcher);
    
    //获取事件监听
    virtual EventDispatcher* getEventDispatcher() const;
    
    //获取不透明度
    virtual GLubyte getOpacity() const;
    
    //设置不透明度
    virtual void setOpacity(GLubyte opacity);
    
    //获取节点显示在屏幕上的不透明度
    virtual GLubyte getDisplayedOpacity() const
    
    //设置节点显示在屏幕上的不透明度
    virtual void updateDisplayOpacity(GLubyte parentOpacity)
    
    //设置子节点不透明度是否跟随变化 true:跟随变化 false:不跟随变化
    virtual void setCascadeOpacityEnabled(bool cascadeOpacityEnabled)
    
    //获取子节点不透明度是否跟随变化
    virtual bool isCascadeOpacityEnabled () const
  • Setters & Getters for Graphic Properties functions 图形属性的设置器和获取器函
    //LocalZOrder是用于对节点相对于其同级进行排序的“关键字”。
    //两个节点具有相同的LocalZOrder,则首先添加到子级数组中的节点将位于数组中另一个节点的前面。
    vitrual void setLocalZOrder(int localZOrder)
    
    //获取localZOrder的值
    virtual int getLocalZOrder () const
    
    //设置节点渲染器的顺序,globalZorder越小的节点最先渲染。
    /
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值