the*_*tic 2 iphone cocos2d-iphone ipad
我现在正在开发游戏一段时间,我通过反复试验与convertToWorldSpace合作.它总是很有效,但我不知道我要做的是说实话.我真的很讨厌我不明白我在做什么,但遗憾的是互联网并没有提供有关这个问题的更多信息.所以我希望有人可以解释一下,为什么我必须从节点的父节点调用convertToWorldSpace,以及当我使用convertToNodeSpace时.我完全没有头绪.有人可以解释一下他们做了什么,也许可以举个例子吗?我真的很感激!:-)
简单的说...
世界空间是屏幕的坐标网格.
nodespace是图层的坐标网格.
cocos2d和大多数其他游戏框架由一个场景中的多个层组成,你很可能会有一堆其他小节点/精灵.当您计算图层中每个精灵的坐标时,您将使用节点空间,但是当您获得触摸位置时,它将位于世界空间中,因此您需要使用convertToNodeSpace等进行转换.
希望这可以帮助!
----编辑----
也许一个例子会有所帮助......
[somenode convertToWorldSpace:ccp(x, y)];
Run Code Online (Sandbox Code Playgroud)
上面的代码将坐标(x,y)转换为屏幕上的坐标.例如,如果(x,y)是(0,0),那么该位置将是节点的左下角,但不一定在屏幕上.这会将节点的(0,0)转换为屏幕的位置.
[somenode convertToNodeSpace:ccp(x, y)];
Run Code Online (Sandbox Code Playgroud)
上面的代码将反其道而行之.它会将屏幕上的坐标(x,y)转换为某个节点上的坐标.
因此,当你有想要移动的东西(或获得某个位置或其他什么)时,它会变得很方便,因为大多数时候你想要移动相对于屏幕的任何东西,而不是在那一层内.