我想我没有得到什么是wolrd空间和节点空间。 我有一个节点是physicsNode的子节点。在该节点类的方法中,我有以下代码:
[self convertToNodeSpace:[self.physicsNode convertToWorldSpace:self.positionInPoints]];
我以为我正在将节点的位置(引用他的父节点; physicsNode)转换为worldSpace,然后将此位置转换为节点空间。所以我应该得到ccp(0,0)。但我得到ccp(8.4999,4.0001)不知道为什么。
如果我运行此代码:
[self convertToNodeSpace:[self.physicsNode convertToWorldSpace:ccpAdd(self.positionInPoints,ccp(200,0))]];
我得到ccp(149.92133046214917,-137.42134383693451)..我希望得到ccp(200,0)。发生了什么事?
答案 0 :(得分:0)
您是否尝试来回转换以更好地了解世界和节点空间?
我假设以下节点结构:
您已将CCNode置于(0,0)并假设转换为世界空间并返回节点空间应该再次产生(0,0)?
获取世界排名:
CGPoint worldPos = [self.physicsNode convertToWorldSpace:self.positionInPoints];
转换回节点空间以转换回节点空间,您需要使用 physicsNode
,因为self
是physicsNode
的孩子:
CGPoint nodePos = [self.physicsNode convertToNodeSpace:worldPos];