CocosCreator-使用convertToNodeSpac

2021-04-02  本文已影响0人  程序猿TODO

含义

convertToNodeSpace

将一个点转换到节点 (局部) 坐标系,并加上锚点的坐标。
也就是说返回的坐标是相对于节点包围盒左下角的坐标。

convertToNodeSpaceAR

将一个点转换到节点 (局部) 空间坐标系,这个坐标系以锚点为原点。
也就是说返回的坐标是相对于节点原点的坐标。

convertToWorldSpace

将一个相对于节点左下角的坐标位置转换到世界空间坐标系。

convertToWorldSpaceAR

将一个相对于节点原点的坐标位置转换到世界空间坐标系。

使用总结

cocos引擎的世界坐标总是以左下角为原点,即左下角坐标为(0, 0)
convertToNodeSpaceconvertToNodeSpaceAR的输入参数是个世界坐标,返回值是相对于节点的局部坐标
convertToWorldSpaceconvertToWorldSpaceAR的输入参数是节点相对坐标,返回值是世界坐标
如果要把A节点的坐标转换为相对于B节点的坐标,应先把A坐标转换为世界坐标,然后再把得到的世界坐标转换为B坐标
convertToNodeSpaceAR返回目标节点空间系的局部坐标,一般使用它就够用了;
convertToNodeSpace是在convertToNodeSpaceAR基础上,加上目标节点锚点的坐标,最终得到相对于节点左下角的局部坐标。看下它的源码实现就明白了:

convertToNodeSpace(node, worldPoint) {
    let localPt = node.convertToNodeSpaceAR(worldPoint);
    localPt.x += node.anchorX * node.width;
    localPt.y += node.anchorY * node.height;
    return localPt;
}
上一篇 下一篇

猜你喜欢

热点阅读