《不靠谱2.x》003.CCNode

《不靠谱2.x》003.CCNode,第1张

概述一、概述 CCNode.h文件由三部分组成:两个枚举类型、CCNode自身定义、继承自CCNode和CCRGBAProtocol的类CCNodeRGBA。源码如下,已有英文注释,另有少量我自己的注释: 1、两个枚举类型 enum { kCCNodeTagInvalid = -1,};enum { kCCNodeOnEnter, kCCNodeOnExit, k

一、概述
CCNode.h文件由三部分组成:两个枚举类型、CCNode自身定义、继承自CCNode和CCRGBAProtocol的类CCNodeRGBA。源码如下,已有英文注释,另有少量我自己的注释:
1、两个枚举类型

enum {    kCCNodeTagInvalID = -1,};enum {    kCCNodeOnEnter,kCCNodeOnExit,kCCNodeOnEnterTransitionDIDFinish,kCCNodeOnExitTransitionDIDStart,kCCNodeOnCleanup};

2、CCNode自身定义

3、CCNodeRGBA

class CC_DLL CCNodeRGBA : public CCNode,public CCRGBAProtocol{public:    CCNodeRGBA();    virtual ~CCNodeRGBA();    virtual bool init();    virtual glubyte getopacity();    virtual glubyte getdisplayedOpacity();    virtual voID setopacity(glubyte opacity);    virtual voID updatedisplayedOpacity(glubyte parentopacity);    virtual bool isCascadeOpacityEnabled();    virtual voID setCascadeOpacityEnabled(bool cascadeOpacityEnabled);    virtual const cccolor3B& getcolor(voID);    virtual const cccolor3B& getdisplayedcolor();    virtual voID setcolor(const cccolor3B& color);    virtual voID updatedisplayedcolor(const cccolor3B& parentcolor);    virtual bool isCascadecolorEnabled();    virtual voID setCascadecolorEnabled(bool cascadecolorEnabled);    virtual voID setopacityModifyRGB(bool bValue) {};    virtual bool isOpacityModifyRGB() { return false; };protected:glubyte _displayedOpacity;    glubyte     _realOpacity;cccolor3B _displayedcolor;    cccolor3B   _realcolor;bool _cascadecolorEnabled;    bool        _cascadeOpacityEnabled;};

二、分析
1、通过两个枚举类型的命名方式和意思,推测应该是类似于发送通知时的消息,暂不细究
2、CCNode和CCDirector一样继承自CCObject,但是CCNode要比CCDirector“家大业大”得多。几乎所有和渲染有关的类都继承自CCNode。虽然CCNode自身不能渲染绘制任何图像,但是除此之外的功能,CCNode几乎已经全了。详细如下:
(1)属性包括:位置、缩放、角度、锚点、大小、z-order
(2)拥有添加、移除子节点的各种重载方法、获得/设置父节点的方法
(3)开启、暂停、关闭、获取、设置定时器的各种方法
(4)执行、停止动作的各种重载方法
(5)onEnter、onExit方法第一次出现(另外两个暂时不管)
(6)几乎所有方法都是虚函数;另,类树该分支上第一次出现的被子类广泛覆盖的初始化虚函数:init()
3、CCNodeRGBA继承自CCNode,自然拥有了CCNode的一切开放的方法和属性;除此之外,从另一个父类CCRGBAProtocol上继承了设置透明度和颜色的方法。后面要介绍到的CCSprite,其父类就是CCNodeRGBA,以及另一个类CCTextureProtocol,这也是为什么精灵可以设置透明度和颜色的原因。

三、总结 1、知道了CCNode虽然不能渲染任何图像,但是身为节点的功能已十分完善 2、知道了透明度和颜色设置来源于CCNodeRGBA

总结

以上是内存溢出为你收集整理的《不靠谱2.x》003.CCNode全部内容,希望文章能够帮你解决《不靠谱2.x》003.CCNode所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1063035.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存