Cocos节点

来源:互联网 发布:mac mpv播放器 慢放 编辑:程序博客网 时间:2024/06/05 11:25


节点都是Node对象,节点各自记录了其属性,这些属性会在渲染上体现出来。Scene往往是树根,每个节点的儿子们被方在了Vector<Node*>_children中,自然也有节点的增删改查(addChild;removeChild;removeChildByTag;removeFromParent;removeChildByName;getChildByTag和ByName。。。)

节点的内容:

setLocalZOrder 控制该节点和其兄弟节点绘制先后顺序,数值越大则越靠后被绘制,到时候,会将所有其子节点按localZOrder排序,会先绘制小于0的节点,之后绘制自己,然后是其大于0 的子节点。(setGlobalZOrder 是全局控制函数)

setZOrder:用于3d中

setOrderOfArrival 在节点有相同的Zorder时被用到,在addChild时会调用该函数,一般按addChild顺序来排列

getChildByName 有两个模样,但是只要会正常的一个就行了(另一个不必要)

1.Sprite*s = (Sprite*)getChildByName(“”);                       2.Sprite*s = getChildByName<Sprite*>(“”);

Vector<Node*>&getChildren():这个函数是返回一个包含所有子节点的Vector引用。就是说对这个引用的修改可以改变子节点。

setParent:并非真的能将当前节点挂在父节点下(源码中并没有retain当前节点),故不等于父节点addChild当前节点。

sortAllChildren:按LocalZorder排序,visit中用

getGLProgram:获取GL程序,这个是给显卡用的

isRunning:状态判断。

draw:无参数版的是final的,不许重载,故我们只能重载韩参数版的draw。

getScene:寻找根节点,返回一个dynamic_cast(专用作类类型强制转换)的的Scene对象。这个结果是不缓存的,每次调用就是一个新的计算,最好保存起来。实际使用往往被Director::getRunningScene替代。

getBoundingBox也是不缓存的

getEventDispatchergetActionManagergetScheduler一样是单例

updateTransform:更新子节点的变化(如父节点旋转30度,子节点也想相应操作,则用这个)

很多坐标转换函数。。。

 

0 0
原创粉丝点击