如图中所示,当我把某一个骨骼从一帧到另一帧之间隐藏的时候,在第一种情况是工作正常的,
但第二种情况的时候,骨骼总是不能隐藏
这个问题马上纠结了一周了,请大神们帮忙看一下,谢谢。
动画编辑工具:cocos studio 1.6.0.0
引擎:quick-cocos2d-x-2.2.6-release
语言:lua
该情况在动画编辑器中播放时都正常,但使用代码加载播放时,就有问题了。
如图中所示,当我把某一个骨骼从一帧到另一帧之间隐藏的时候,在第一种情况是工作正常的,
但第二种情况的时候,骨骼总是不能隐藏
这个问题马上纠结了一周了,请大神们帮忙看一下,谢谢。
动画编辑工具:cocos studio 1.6.0.0
引擎:quick-cocos2d-x-2.2.6-release
语言:lua
该情况在动画编辑器中播放时都正常,但使用代码加载播放时,就有问题了。
自己顶一下
找到原因了,给大家分享一下
文件cocos2d-x\extensions\CocoStudio\Armature\animation\CCTween.cpp 文件中
修改函数
void CCTween::arriveKeyFrame(CCFrameData *keyFrameData)
{
if(keyFrameData)
{
CCDisplayManager *displayManager = m_pBone->getDisplayManager();
//! Change bone's display
int displayIndex = keyFrameData->displayIndex;
if (!displayManager->getForceChangeDisplay())
{
displayManager->changeDisplayWithIndex(displayIndex, false);
}
//! Update bone zorder, bone's zorder is determined by frame zorder and bone zorder
m_pTweenData->zOrder = keyFrameData->zOrder;
m_pBone->updateZOrder();
//! Update blend type
m_pBone->setBlendFunc(keyFrameData->blendFunc);
//! Update child armature's movement
CCArmature *childAramture = m_pBone->getChildArmature();
if(childAramture)
{
if(keyFrameData->strMovement.length() != 0)
{
childAramture->getAnimation()->play(keyFrameData->strMovement.c_str());
}
}
m_pBone->getDisplayManager()->setVisible(displayIndex>=0); //添加该句代码
}
}
不知道会不会出现其它bug,后续测试。