auto* node = SceneReader::getInstance() -> createNodeWithSceneFile("PKScene/PKScene.json");
addChild(node);
node10003 = node -> getChildByTag(10003);
node10004 = node -> getChildByTag(10004);
ArmatureDataManager::getInstance()->addArmatureFileInfo("HeroAction/heroAction.ExportJson");
pkArmature10003 = Armature::create("heroAction");
ComRender* armature10003 = ComRender::create(pkArmature10003,"CCArmature");
pkArmature10004 = Armature::create("heroAction");
pkArmature10004 -> setScaleX(-1.0);
ComRender* armature10004 = ComRender::create(pkArmature10004,"CCArmature");
node10003 -> addComponent(armature10003);
node10004 -> addComponent(armature10004);
上面这样的创建方法是图1的样子,在场景编辑器里面直接创建两个node空的
然后
![]()
这是重合了的碰撞区域,但是运行显示的两个动画是分开的,按照上面的场景图的位置分开的,但boundingBox是重合的
if (pkArmature10004 -> getBoundingBox().intersectsRect(pkArmature10003 -> getBoundingBox()))直接判断下,结果就是重合了
后来改为
//auto* node = SceneReader::getInstance() -> createNodeWithSceneFile(“PKScene/PKScene.json”);
//addChild(node);
//node10003 = node -> getChildByTag(10003);
//node10004 = node -> getChildByTag(10004);
上面这些都注释掉!下面改为直接添加动画
pkArmature10003->setPosition( ccp (Director::getInstance() -> getVisibleSize().width * 0.2, Director::getInstance() -> getVisibleSize().height * 0.5));
addChild(pkArmature10003);
pkArmature10004->setPosition( ccp (Director::getInstance() -> getVisibleSize().width * 0.8, Director::getInstance() -> getVisibleSize().height * 0.5));
addChild(pkArmature10004);
这样就不重合了
if (pkArmature10004 -> getBoundingBox().intersectsRect(rect))直接判断下没问题不重合
所以我前几个帖子和回复问题想问的就是这个,那些碰撞框重合可能因为这个
为什么我在场景中直接添加两个NODE会重合
我想用上面的那样的在场景中添加node的位置,来做,下面没重合的结果!

