Cocos2d-x 坐标转换:将坐标点从一个节点转换到另一个节点
在 Cocos2d-x 中,可以使用以下方法将一个坐标点从一个节点转换到另一个节点:
- 使用
convertToNodeSpace()方法将坐标转换为目标节点的本地坐标。
例如,假设有两个节点 A 和 B,A 的位置为 (100, 100),B 的位置为 (200, 200),坐标点 P 的位置为 (150, 150):
auto A = Node::create();
A->setPosition(Vec2(100, 100));
this->addChild(A);
auto B = Node::create();
B->setPosition(Vec2(200, 200));
this->addChild(B);
auto P = Vec2(150, 150);
现在,我们要将点 P 的位置从节点 A 转换到节点 B 中。可以使用以下代码来转换:
auto P_in_B = A->convertToNodeSpace(P);
auto P_in_global = B->convertToWorldSpace(P_in_B);
最后,可以使用 convertToWorldSpace() 方法将本地坐标转换为全局坐标。
- 使用
convertToWorldSpace()方法将本地坐标转换为全局坐标,然后使用convertToNodeSpace()方法将全局坐标转换为目标节点的本地坐标。
例如,假设有两个节点 A 和 B,A 的位置为 (100, 100),B 的位置为 (200, 200),坐标点 P 的位置为 (150, 150):
auto A = Node::create();
A->setPosition(Vec2(100, 100));
this->addChild(A);
auto B = Node::create();
B->setPosition(Vec2(200, 200));
this->addChild(B);
auto P = Vec2(150, 150);
现在,我们要将点 P 的位置从节点 A 转换到节点 B 中。可以使用以下代码来转换:
auto P_in_global = A->convertToWorldSpace(P);
auto P_in_B = B->convertToNodeSpace(P_in_global);
最后,可以使用 convertToNodeSpace() 方法将全局坐标转换为目标节点的本地坐标。
原文地址: https://www.cveoy.top/t/topic/oCH2 著作权归作者所有。请勿转载和采集!