cocos2d-lua:节点坐标系和世界坐标系之间的的转换
节点坐标系转换成世界坐标系
- convertToWorldSpace:忽略锚点,以左下角为原点
local worldPos = targetNode:getParent():convertToWorldSpace(cc.p(targetNode:getPosition()))
- convertToWorldSpaceAR:不忽略锚点,以锚点为原点
local worldPosAR = targetNode:getParent():convertToWorldSpaceAR(cc.p(targetNode:getPosition()))
世界坐标系转换成节点坐标系
- convertToNodeSpace:忽略锚点,以左下角为原点
local nodePos = targetNode:getParent():convertToNodeSpace(worldPos)
- convertToNodeSpaceAR:不忽略锚点,以锚点为原点
local nodePosAR = targetNode:getParent():convertToNodeSpaceAR(worldPosAR)
ps
通过触摸得到的坐标是世界坐标!
--------------------add on July. 16, 2020--------------------
获取节点的相对位置
节点树:
node_main
node_parent_1
node_child
node_parent_2
目标:获取 node_child 相对于 node_parent_2 的节点坐标!
实现:
local worldPos = node_parent_1:convertToWorldSpace(cc.p(node_child:getPosition()))
-- local worldPos = node_child:convertToWorldSpace(node_child:getAnchorPointInPoints()) -- 获取子节点世界坐标的另一种方式
local nodePos = node_parent_2:convertToNodeSpace(worldPos)