ConvertToWorldSpace берет локальные координаты узла и преобразует их в мировые координаты.
ConvertToNodeSpace принимает МИРОВЫЕ координаты, преобразует их в координаты вызывающего узла.
(Если это так, вызовите [nodeA convertToWorldSpace:ccp(10,10)]
, предполагается, что позиция (10,10) относится к дочернему элементу узла A)
По сути, чтобы получить мировую позицию любого узла (в cocos2d 3 или новее), используйте этот код:
CGPoint worldPosition=[node.parent convertToWorldSpace:node.positionInPoints];
Я лично создал функцию, чтобы использовать ее снова и снова (добавьте ее в начало любого файла .m / .h, и вы увидите ее)
static inline CGPoint
worldPosOfNode(CCNode *node){
return [node.parent convertToWorldSpace:node.positionInPoints];
}
И я использую это так: (myNode может быть любым спрайтом, ярлыком или любым другим пользователем cocos2d)
CGPoint worldPosition=worldPosOfNode(myNode);