Cocos2d-x源码阅读1 UI树1(第一次系统而有成效的阅读源码的感悟),cocos2d-xui

  次阅读 作者:智能小宝 来源:互联网 2015-09-28 13:31 我要评论(0)

Cocos2d-x源码阅读1 UI树1(第一次系统而有成效的阅读源码的感悟),cocos2d-xui

之前我很少看源码,觉得枯燥又没有头绪。说实话现在看的也少,不过作为程序员要想成长,必须要突破自己的瓶颈吧。

也许我的天赋不在写代码这里,也许这是一个越走越难的路,也许这又是一个有金矿的浅坑,坚持下去就会挖到金矿。

然而没有那么多可以选择叻,试着去强大吧,即使自己不擅长,即使落后很多,即使,即使,即使,即使,。。。。

http://cn.cocos2d-x.org/tutorial/show?id=2157

推荐大家去这里看这个视频,自己看源码可能没有头绪,跟着王老师的视频效果还是很好的。

这里是我根据视频记录下来的主要的函数,涉及了Node的所有添加,删除,设置属性和查找,具体的细节还是大家自己去看视频对着源码阅读。感觉真不错。(*^__^*) ……

自己去看视频吧,去看吧。

virtual void ignoreAnchorPointForPosition(bool newValue) ;只能用于Scene和Layer,用在其他控件报错,为true则不管设置的锚点是多少,都以(0,0)作为锚点

virtual void setAnchorPoint(const Vec2& anchorPoint);用百分比设置本地化坐标系,就是自己坐标系

virtual const Vec2& getAnchorPoint() const;

返回的锚点的位置(百分比)

virtual const Vec2& getAnchorPointInPoints() const; 返回锚点的位置(具体像素值)

virtual void setPosition(const Vec2 &position); 是设置自己在父UI的坐标系的位置,position相对于OpenGL坐标系

virtual void setNormalizedPosition(const Vec2 &position); 用0-1之间的值设置位置,0-1之间是相当于 pos/getParent()->getContentSize();

virtual const Mat4& getNodeToParentTransform()

const;得到一个矩阵,可以转换子UI的坐标到父UI的坐标

virtual AffineTransform getNodeToParentAffineTransfrom() const; 得到一个仿射变换,可以转换子UI的坐标到父UI的坐标,比Mat4矩阵要小

virtual const Mat4& getParentToNodeTransform() const; 得到一个矩阵,可以转换父UI的坐标系到子UI的坐标系

virtual AffineTransform getParentToNodeAffineTransfrom() const; 得到一个仿射变换,可以把父UI的坐标系转换到子UI的坐标系

virtual Mat4 getNodeToWorldTransfrom() const;

virtual AffineTranfrom getNodeToWorldAffineTransfrom() const;

virtual Mat4 getWorldToNodeTransfrom() const;

virtual AffineTransfrom getWorldToNodeAffineTransfrom() const;

Vec2 convertToNodeSpace(const Vec2& worldPoint) const;

Vec2 convertToWorldSpace(const Vec2& nodePoint) const;

Vec2 convertToNodeSpaceAR(const Vec2&worldPoint) const;加入了锚点坐标系,如果锚点为(0,0)则和 convertToNodeSpace一样,否则以锚点为准

Vec2 convertToWorldSpaceAR(const Vec2& nodePoint) const;加入了锚点坐标系,如果锚点为(0,0)则和 convertToWorldSpace一样,否则以锚点为准

Vec2 convertTouchToNodeSpace(Touch * touch) const;

Vec2 convertTouchToNodeSpaceAR(Touch * touch) const;

virtual void addChild(Node * child, int localZorder, int tag);

virtual Node * getChildByTag(int tag) const;

virtual Node * getChildByName(const std::string & name) const;

virtual void setParent(Node * parent);

virtual Node * getParent() {return _parent;}

virtual void removeFromParent();

virtual void removeFromParentAndCleanup(bool cleanup);

virtual void removeChild(Node * child, bool cleanup = true);

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...