Files
CocosCreatorTutorial/CreatorUtils/PointConvert.js
2018-10-04 20:34:05 +08:00

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
};