2015-02-07 121 views
0

我尝试2个精灵 之间捕捉intersectsRect后:
http://www.cocos2d-x.org/wiki/Coordinate_System#convertToNodeSpace
我有精灵convertToNodeSpace混乱

+Root 
|-Child_1 
|  |--Child_1_of_Child_1 
|-Child_2 

的代码这个层次结构中的简单

Sprite* root = Sprite::create(); 
Sprite* Child_1 = Sprite::create(); 
Sprite* Child_1_of_Child_1 = Sprite::create(); 
Sprite* Child_2 = Sprite::create(); 

root->addChild(Child_1); 
Child_1->addChild(Child_1_of_Child_1); 
root->addChild(Child_2); 

我想捕获Child_2和Child_1_of_Child_1精灵之间的冲突。 但是我所做的每件事都从来没有捕获它在Child_1_of_Child_1 这是我在更新循环中所拥有的。

 Rect r = Child_2->getBoundingBox(); 
     Vec2 vr = Child_2->getPosition(); 
     Vec2 newNodeSpaceVec = Child_1->convertToNodeSpace(vr); 
//not working also 
// Vec2 newNodeSpaceVec = Child_1->Child_1_of_Child_1->convertToNodeSpace(vr); 
     Rect NewRec(newNodeSpaceVec.x,newNodeSpaceVec.y,r.size.width,r.size.height); 

     //THIS iS ALLWAYS FALSE 
     if(Child_1->Child_1_of_Child_1->getBoundingBox().intersectsRect(NewRec)) 
    { 
    } 

现在事情我做什么即使我看到2个精灵相撞如果从来没有真实。

回答

1

对于您提出的结构,尝试使用此:

Vec2 child1Pos = Child_1->getParent()->convertToWorldSpace(Child_1->getPosition());