今天遇到一个问题,cocos2d-x-2.2.5 加载spine的骨骼动画之后,想在骨骼动画上面加一个血条,但是boundingBox得到的却为0。
代码如下:
CCSkeletonAnimation* playerSkeleton = CCSkeletonAnimation::createWithFile(skeletonDataFile, atlasFile, scale);
this->addChild(playerSkeleton);
playerSkeleton->setSkin("mushi1");
playerSkeleton->setSlotsToSetupPose();
float height= playerSkeleton->boundingBox().size.height;
CCLog("height=%.0f",height);
输出结果是 height=0
重载了CCLayer的draw函数之后,发现第一帧也是0,从第二帧开始,boundingBox才不为0。
google了一下,找到了一个解决办法,就是在取boundingBox之前,先update一次!
修改之后的代码如下:
CCSkeletonAnimation* playerSkeleton = CCSkeletonAnimation::createWithFile(skeletonDataFile, atlasFile, scale);
this->addChild(playerSkeleton);
playerSkeleton->setSkin("mushi1");
playerSkeleton->setSlotsToSetupPose();
playerSkeleton->update(0);//必须加这一行
float height= playerSkeleton->boundingBox().size.height;
CCLog("height=%.0f",height);
输出结果是 height=200