稍后编辑:
当你这样做时:
[aSprite convertToWorldSpace:position];
您实际上是在 aSprite 的坐标系中获取位置的全局坐标。如果你想将 aSprite 的位置翻译到全局空间,你需要让它的父级为你做翻译,因为 sprite.position 已经在它的父级坐标系中。
希望它解释它
原答案:
对我来说,这个解决方案不起作用
我有一个 2 级层次结构,其中 mySprite 是 CCSprite 的子节点,CCSprite 是场景的子节点。
底线:这段代码为我解决了这个问题:
CGPoint worldCoord = [[mySprite parent]convertToWorldSpace: mySprite.position];
这是需要我的解决方案的层次结构:myScene -> mySpriteParent -> mySprite
mySprite.position:29,254
mySpriteParent.position:533,57
解决方案1 - 错误结果:
[mySprite convertToWorldSpace: mySprite.position]:91,418
解决方案2 - 正确的结果:
[[boxSprite parent] convertToWorldSpace:boxSprite.position]:253.5,275.5
也许这个解决方案会帮助某人也许有人会解释为什么这个解决方案有效,而不是另一个