在 Cocos2d-x 中,可以使用以下方法将一个坐标点从一个节点转换到另一个节点:

  1. 使用 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() 方法将本地坐标转换为全局坐标。

  1. 使用 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() 方法将全局坐标转换为目标节点的本地坐标。

Cocos2d-x 坐标转换:将坐标点从一个节点转换到另一个节点

原文地址: https://www.cveoy.top/t/topic/oCH2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录