add SkeletonNode Nest test case

This commit is contained in:
geron-cn 2015-07-28 23:49:25 +08:00
parent d2de5b1c85
commit fa5d70fc04
2 changed files with 12 additions and 5 deletions

View File

@ -112,6 +112,10 @@ void BoneNode::removeChild(Node* child, bool cleanup /* = true */)
void BoneNode::removeFromBoneList(BoneNode* bone) void BoneNode::removeFromBoneList(BoneNode* bone)
{ {
_childBones.eraseObject(bone); _childBones.eraseObject(bone);
auto skeletonNode = dynamic_cast<SkeletonNode*>(bone);
if (bone != nullptr) // nested skeleton
return;
bone->_rootSkeleton = nullptr; bone->_rootSkeleton = nullptr;
auto subBones = bone->getAllSubBones(); auto subBones = bone->getAllSubBones();
subBones.pushBack(bone); subBones.pushBack(bone);
@ -424,9 +428,12 @@ cocos2d::Vector<SkinNode*> BoneNode::getAllSubSkins() const
void BoneNode::sortAllChildren() void BoneNode::sortAllChildren()
{ {
Node::sortAllChildren(); if (_reorderChildDirty)
std::sort(_childBones.begin(), _childBones.end(), cocos2d::nodeComparisonLess); {
std::sort(_boneSkins.begin(), _boneSkins.end(), cocos2d::nodeComparisonLess); std::sort(_childBones.begin(), _childBones.end(), cocos2d::nodeComparisonLess);
std::sort(_boneSkins.begin(), _boneSkins.end(), cocos2d::nodeComparisonLess);
Node::sortAllChildren();
}
} }
SkeletonNode* BoneNode::getRootSkeletonNode() const SkeletonNode* BoneNode::getRootSkeletonNode() const

View File

@ -340,7 +340,7 @@ void SkeletonNode::updateAllDrawBones()
std::stack<BoneNode*> boneStack; std::stack<BoneNode*> boneStack;
for (const auto& bone : _childBones) for (const auto& bone : _childBones)
{ {
if (bone->isVisible()) if (bone->isVisible() && bone->isDebugDrawEnabled())
boneStack.push(bone); boneStack.push(bone);
} }
@ -352,7 +352,7 @@ void SkeletonNode::updateAllDrawBones()
auto topChildren = top->getChildBones(); auto topChildren = top->getChildBones();
for (const auto& childbone : topChildren) for (const auto& childbone : topChildren)
{ {
if (childbone->isVisible()) if (childbone->isVisible() && childbone->isDebugDrawEnabled())
boneStack.push(childbone); boneStack.push(childbone);
} }
} }