Cocos2d-x C++ Node 源码简析

Cocos2d-x的Node是场景图像的基本元素,具备位置、旋转、缩放等属性,可包含子节点形成层级结构,支持事件监听、动作执行等功能。Node的属性包括rotation、scale、position等,还有cleanup、setPositionNormalized等方法。

简介

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。如图所示:
skew示例

anchor point

节点的锚点,用于position定位(位置是相对于某点来说的,这个点就是锚点)、旋转的中心点等。_anchorPointInPoints记录锚点的具体相对位置,在节点大小更新或锚点更新时会同步更新。锚点默认为(0.5, 0.5)。

content size

节点的原始大小,即使节点进行了scale、rotation等操作仍会返回原本的节点大小。

transform

节点的变换矩阵,修改节点的 会改变显示的属性 时,这个矩阵都需要重新计算。cocos使用延迟计算的方式提升性能,减少多余的计算。

z order

节点的渲染顺序,这个顺序由3个值决定:_globalZOrder、_localZOrder、_orderOfArrival。优先级为_globalZOrder > _localZOrder > _orderOfArrival。即当_globalZOrder相等时比较_localZOrder,以此类推。

z order越小的节点越先渲染,也就意味着越在底层。global z order和local z order都可以手动设置,order of arrival由引擎根据添加节点的顺序自动递增,不可更改。即在未手动设置z order的情况下,后添加的节点后渲

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值