cocos2d convertToWorldSpace

sto*_*one 5 cocos2d-iphone

我不确定convertToWorldSpace的工作原理.

  • 我有spriteA,它是父母.

  • 我将它设置为40,40位置并将其添加到场景中.

  • 我有第二个spriteB,我设置在80,80位置.

  • 我将spriteB添加到spriteA.

  • 我打印出spriteB的位置:80,80.

  • 然后我打印[self convertToWorldSpace:spriteB.position].而且,我仍然得到80,80.spriteB的位置应该不同吗?

Yan*_*iot 11

在你的情况下,如果你想知道你的spriteB在当前世界中的位置,你必须从其父级(spriteA)调用"convertToWorldSpace"方法:

[spriteA convertToWorldSpace:spriteB.position];

"convertToWorldSpace:"方法将节点的变换应用于给定位置.你应该总是从父亲的精灵中调用这个方法.

  • 场景代表世界,所以如果你要求它将任何点转换成它的空间,它将返回相同的位置.例如,转换到场景中的点(80,80)将返回(80,80).在你的情况下,如果你通过spriteA转换spriteB位置,它将在它上面应用spriteA转换.即你(80,80)的转换点(40,40)(在spriteA的宽度约为40px的情况下)给出世界位置(120,120). (3认同)