2015-02-07 166 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());