我有一个精灵也有一个子精灵。我试图了解如何正确设置子精灵的位置,使其与父级匹配相同的屏幕位置。我认为基于阅读文档,我应该能够做到:
child.position = [child convertToNodeSpaceAR:parent.position];
但是,这并没有给出正确的位置。
我知道我能做到:
child.position = ccp(parent.textureRect.size.width * parent.anchorPoint.x,
parent.textureRect.size.height * parent.anchorPoint.y);
但我认为convertToXXSpace方法应该处理这个方便吗?
答案 0 :(得分:0)
尝试:
child.position = [parent convertToNodeSpace:parent.position];
你想取一个位置并将其转换为父坐标空间,这就是你在父类上调用它的原因。
<强>编辑:强>
第二个想法是你有一个孩子附加到父母,你希望孩子的位置与父母的位置匹配。为此,请尝试将子项添加到父项并使用(0,0)的位置作为子项:
[parent addChild:child];
child.position = CGPointZero;
从技术上讲,您之后不应该触摸孩子的位置。如果你移动父母,孩子将自动随之移动。你唯一一次改变孩子的方法就是你要从孩子的父母那里取消孩子,这是基于你的OP而不是。