WorldSpace和NodeSpace

时间:2014-04-29 21:17:40

标签: ios ios7 cocos2d-iphone

我想我没有得到什么是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)。发生了什么事?

1 个答案:

答案 0 :(得分:0)

您是否尝试来回转换以更好地了解世界和节点空间?

我假设以下节点结构:

  • CCPhysicsNode
    • CCNode(您希望获得此节点的位置)

您已将CCNode置于(0,0)并假设转换为世界空间并返回节点空间应该再次产生(0,0)?

  1. 获取世界排名

    CGPoint worldPos = [self.physicsNode convertToWorldSpace:self.positionInPoints];
    
  2. 转换回节点空间以转换回节点空间,您需要使用 physicsNode ,因为selfphysicsNode的孩子:

    CGPoint nodePos = [self.physicsNode convertToNodeSpace:worldPos];