文章目录
- 简介
- 属性介绍
- 函数介绍
-
- void cleanup()
- void setPositionNormalized(const Vec2 &position)
- Scene* getScene()
- Rect getBoundingBox()
- void enumerateChildren(const string &name, function<bool (Node *)> callback)
- void addChildHelper(Node* child, int localZOrder, int tag, const string &name, bool setTag)
- void detachChild(Node* child, ssize_t childIndex, bool doCleanup)
- void sortAllChildren()
- void draw(Renderer* renderer, const Mat4 & transform, uint32_t flags)
- void visit(Renderer* renderer, const Mat4 &parentTransform, uint32_t parentFlags)
- void onEnter()
- Action* runAction(Action* action)
- void update(float fDelta)
简介
Node是在场景图像中显示图像最基础的元素,所有场景图像上的元素都是Node的子类。Node拥有图像的一些基本属性,如位置、大小、锚点等,也可以对图像进行一些改变,如缩放、旋转、偏斜等。同时,Node可以包含其他Node,形成层级关系(比如把衣服节点、鞋子节点添加到人节点上,这样移动人节点时衣服节点和鞋子节点就会一起移动),也可以监听事件(如节点进入场景、退出场景时)、执行定时器(比如枪每1秒发射一颗子弹,可以用定时器实现)、执行动作(比如放大、平移等)等。
属性介绍
rotation
节点的旋转角度,可以根据x、y、z轴进行旋转,以顺时针为准,默认为0。
scale
节点的缩放比例,可以单独根据x、y、z轴进行缩放,默认为1。
position
节点的位置,默认受anchor point影响,可以设置_ignoreAnchorPointForPosition为true使位置始终按照anchor point为(0, 0)的情况计算(忽略anchor point对位置的影响),默认为(0, 0)。
skew
节点的偏斜角度,setSkew会保证节点宽高大小不变(会产生拉伸),而setRotationSkewX/Y会在保证宽不变的情况下图像不变形(看起来更有3D效果),默认为0。如图所示:
anchor point
节点的锚点,用于position定位(位置是相对于某点来说的,这个点就是锚点)、旋转的中心点等。_anchorPointInPoints记录锚点的具体相对位置,在节点大小更新或锚点更新时会同步更新。锚点默认为(0.5, 0.5)。
content size
节点的原始大小,即使节点进行了scale、rotation等操作仍会返回原本的节点大小。
transform
节点的变换矩阵,修改节点的 会改变显示的属性 时,这个矩阵都需要重新计算。cocos使用延迟计算的方式提升性能,减少多余的计算。
z order
节点的渲染顺序,这个顺序由3个值决定:_globalZOrder、_localZOrder、_orderOfArrival。优先级为_globalZOrder > _localZOrder > _order