convertToNodeSpace 混淆
convertToNodeSpace confusion
我尝试捕捉 2 个精灵之间的 intersectsRect
阅读此文后:
http://www.cocos2d-x.org/wiki/Coordinate_System#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 个精灵碰撞,如果永远不会为真。
对于你提供的结构,尝试使用这个:
Vec2 child1Pos = Child_1->getParent()->convertToWorldSpace(Child_1->getPosition());
我尝试捕捉 2 个精灵之间的 intersectsRect
阅读此文后:
http://www.cocos2d-x.org/wiki/Coordinate_System#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 个精灵碰撞,如果永远不会为真。
对于你提供的结构,尝试使用这个:
Vec2 child1Pos = Child_1->getParent()->convertToWorldSpace(Child_1->getPosition());