我使用cocos2d-x2.2.3和脊柱1.9.07。我通过Spine导出了"seller.atlas“、"seller.json”和"seller.png“,并将它们放在项目的资源文件夹中。然后,在init()方法中,我添加了这些代码以使用骨架动画
skeletonNode = CCSkeletonAnimation::createWithFile("spine/seller.json", "spine/seller.atlas");
skeletonNode->debugSlots = true;
skeletonNode->timeScale = 0.5f;
skeletonNode->setAnimation("walk", true);
skeletonNode->debugBones = true;
CCSize windowSize = CCDirector::sharedDirector()->getWinSize();
skeletonNode->setPosition(ccp(windowSize.width / 2, 50));
addChild(skeletonNode);但是它会像这样抛出一个错误
void CCObject::release(void)
{
CCAssert(m_uReference > 0, "reference count should greater than 0");
--m_uReference;
if (m_uReference == 0)
{
delete this;
}
}这意味着skeletonNode是空的,所以它一定是地图集文件出了问题。但我不知道这是怎么回事
如有任何帮助,将不胜感激!
发布于 2014-08-11 07:26:56
这是因为cocos2dx 2.2.3使用的是一个旧的脊柱解析器。脊柱1.9生成不同格式的地图集文件。还有一行额外的“大小: xxx,xxx”。为了解决这个特定的问题,在readLine(0,end&str)之前添加Atlas.cpp (!readValue(end,&str))返回abortAtlas(self);
注意,您可能会遇到其他问题,例如未知的附件类型、网格/自Spine1.9以来使用新格式的蒙皮网格。您需要更新2.2.3中的脊柱代码来修复所有这些。
https://stackoverflow.com/questions/24947276
复制相似问题