Iphone convertToWorld-/NodeSpace如何工作?

Iphone convertToWorld-/NodeSpace如何工作?,iphone,ipad,cocos2d-iphone,Iphone,Ipad,Cocos2d Iphone,我现在正在做一个游戏,我通过试错法与convertToWorldSpace合作。事情总是有结果的,但老实说,我不知道我在做什么。我真的很讨厌我不明白我在做什么,但不幸的是,互联网没有提供很多关于这个问题的信息。因此,我希望有人能解释,例如,为什么我必须从节点的父节点调用convertToWorldSpace,以及何时使用convertToNodeSpace。我完全不知道。有人能概括地解释一下他们做什么,或者举个例子吗?我真的很感激!:-) 简单地说 世界空间是屏幕的坐标网格 [somenode

我现在正在做一个游戏,我通过试错法与convertToWorldSpace合作。事情总是有结果的,但老实说,我不知道我在做什么。我真的很讨厌我不明白我在做什么,但不幸的是,互联网没有提供很多关于这个问题的信息。因此,我希望有人能解释,例如,为什么我必须从节点的父节点调用convertToWorldSpace,以及何时使用convertToNodeSpace。我完全不知道。有人能概括地解释一下他们做什么,或者举个例子吗?我真的很感激!:-)

简单地说

世界空间是屏幕的坐标网格

[somenode convertToNodeSpace:ccp(x, y)];
nodespace是图层的坐标网格

cocos2d和大多数其他游戏框架在一个场景中由多个层组成,你很可能会有一堆其他的小节点/精灵。当您计算层中每个精灵的坐标时,您将使用节点空间,但当您获得接触位置时,它将位于世界空间,因此您需要使用convertToNodeSpace等进行转换

希望这有帮助

----编辑----

也许举个例子会有帮助

 [somenode convertToWorldSpace:ccp(x, y)];
上述代码将坐标(x,y)转换为屏幕上的坐标。例如,如果(x,y)是(0,0),则该位置将是节点的左下角,但不一定在屏幕上。这将把节点的(0,0)转换为屏幕的位置

[somenode convertToNodeSpace:ccp(x, y)];
上述代码的作用正好相反。它会将屏幕上的坐标(x,y)转换为某个节点上的坐标


因此,当您想要移动某个节点或层的子节点(或获取该节点或层的位置或任何内容)时,它非常方便,因为大多数情况下,您希望移动相对于屏幕而不是该层的任何内容。

非常感谢,但有一件事我不明白,为什么我必须从节点的父节点调用convertToWorldSpace。如果世界是基本/原始坐标系,为什么我不能从节点本身调用它?这可能会有所帮助