将子精灵定位到与父亲相同的位置?

时间:2014-06-14 03:49:53

标签: objective-c cocos2d-iphone

我有一个精灵也有一个子精灵。我试图了解如何正确设置子精灵的位置,使其与父级匹配相同的屏幕位置。我认为基于阅读文档,我应该能够做到:

child.position = [child convertToNodeSpaceAR:parent.position];
但是,这并没有给出正确的位置。

我知道我能做到:

child.position = ccp(parent.textureRect.size.width * parent.anchorPoint.x,
                     parent.textureRect.size.height * parent.anchorPoint.y);

但我认为convertToXXSpace方法应该处理这个方便吗?

1 个答案:

答案 0 :(得分:0)

尝试:

child.position = [parent convertToNodeSpace:parent.position];

你想取一个位置并将其转换为父坐标空间,这就是你在父类上调用它的原因。

<强>编辑:

第二个想法是你有一个孩子附加到父母,你希望孩子的位置与父母的位置匹配。为此,请尝试将子项添加到父项并使用(0,0)的位置作为子项:

[parent addChild:child];
child.position = CGPointZero;

从技术上讲,您之后不应该触摸孩子的位置。如果你移动父母,孩子将自动随之移动。你唯一一次改变孩子的方法就是你要从孩子的父母那里取消孩子,这是基于你的OP而不是。