mirror of
https://github.com/Leo501/CocosCreatorTutorial.git
synced 2026-05-08 06:38:37 +08:00
90 lines
2.0 KiB
JavaScript
90 lines
2.0 KiB
JavaScript
|
|
/**
|
|
* 得到一个节点的世界坐标
|
|
* node的原点在中心
|
|
* @param {*} node
|
|
*/
|
|
function localConvertWorldPointAR(node) {
|
|
if (node) {
|
|
return node.convertToWorldSpaceAR(cc.v2(0, 0));
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* 得到一个节点的世界坐标
|
|
* node的原点在左下边
|
|
* @param {*} node
|
|
*/
|
|
function localConvertWorldPoint(node) {
|
|
if (node) {
|
|
return node.convertToWorldSpace(cc.v2(0, 0));
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* 把一个世界坐标的点,转换到某个节点下的坐标
|
|
* 原点在node中心
|
|
* @param {*} node
|
|
* @param {*} worldPoint
|
|
*/
|
|
function worldConvertLocalPointAR(node, worldPoint) {
|
|
if (node) {
|
|
return node.convertToNodeSpaceAR(worldPoint);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* 把一个世界坐标的点,转换到某个节点下的坐标
|
|
* 原点在node左下角
|
|
* @param {*} node
|
|
* @param {*} worldPoint
|
|
*/
|
|
function worldConvertLocalPoint(node, worldPoint) {
|
|
if (node) {
|
|
return node.convertToNodeSpace(worldPoint);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* * 把一个节点的本地坐标转到另一个节点的本地坐标下
|
|
* @param {*} node
|
|
* @param {*} targetNode
|
|
*/
|
|
function convetOtherNodeSpace(node, targetNode) {
|
|
if (!node || !targetNode) {
|
|
return null;
|
|
}
|
|
//先转成世界坐标
|
|
let worldPoint = localConvertWorldPoint(node);
|
|
return worldConvertLocalPoint(targetNode, worldPoint);
|
|
}
|
|
|
|
/**
|
|
* * 把一个节点的本地坐标转到另一个节点的本地坐标下
|
|
* @param {*} node
|
|
* @param {*} targetNode
|
|
*/
|
|
function convetOtherNodeSpaceAR(node, targetNode) {
|
|
if (!node || !targetNode) {
|
|
return null;
|
|
}
|
|
//先转成世界坐标
|
|
let worldPoint = localConvertWorldPointAR(node);
|
|
return worldConvertLocalPointAR(targetNode, worldPoint);
|
|
}
|
|
|
|
module.exports = {
|
|
localConvertWorldPointAR,
|
|
localConvertWorldPoint,
|
|
worldConvertLocalPointAR,
|
|
worldConvertLocalPoint,
|
|
convetOtherNodeSpaceAR,
|
|
convetOtherNodeSpace
|
|
};
|
|
|
|
|