void CCDisplayFactory::createSpriteDisplay(CCBone *bone, CCDecorativeDisplay *decoDisplay) { CCSkin *skin = NULL; CCSpriteDisplayData *displayData = (CCSpriteDisplayData *)decoDisplay->getDisplayData(); std::string textureName = displayData->displayName; size_t startPos = textureName.find_last_of("."); if(startPos != std::string::npos) { textureName = textureName.erase(startPos); } //! create display if(textureName.length() == 0) { skin = CCSkin::create(); } else { skin = CCSkin::createWithSpriteFrameName((textureName + ".png").c_str()); } decoDisplay->setDisplay(skin); if (skin == NULL) { return; } skin->setBone(bone); initSpriteDisplay(bone, decoDisplay, displayData->displayName.c_str(), skin); CCArmature *armature = bone->getArmature(); if (armature) { if (armature->getArmatureData()->dataVersion >= VERSION_COMBINED) { skin->setSkinData(displayData->skinData); } else { skin->setSkinData(*bone->getBoneData()); } } }
void CCDisplayFactory::createSpriteDisplay(CCBone *bone, CCDecorativeDisplay *decoDisplay) { CCSkin *skin = NULL; CCSpriteDisplayData *displayData = (CCSpriteDisplayData *)decoDisplay->getDisplayData(); std::string textureName = displayData->displayName; //! create display if(textureName.length() == 0) { skin = CCSkin::create(); } else { skin = CCSkin::createWithSpriteFrameName((textureName + ".png").c_str()); } skin->setBone(bone); skin->setFlipX(displayData->flipX); initSpriteDisplay(bone, decoDisplay, displayData->displayName.c_str(), skin); CCArmature *armature = bone->getArmature(); if (armature) { if (armature->getArmatureData()->dataVersion >= VERSION_COMBINED) { skin->setSkinData(displayData->skinData); } else { skin->setSkinData(*bone->getBoneData()); } } decoDisplay->setDisplay(skin); }