0

我正在使用 cocos2d-x 2.2.3 和脊柱 1.9.07。我已经通过 Spine 导出了“seller.atlas”、“seller.json”和“seller.png”,并将它们放在我项目的 Resource 文件夹中。然后,在 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为NULL,所以它一定是atlas文件有问题。但我不知道这是什么问题:(

任何帮助,将不胜感激!:D

4

1 回答 1

0

这是因为 cocos2dx 2.2.3 使用的是旧的脊椎解析器。Spine 1.9 生成不同格式的图集文件。有一行额外的“size: xxx,xxx”。要解决此特定问题,请添加 readLine(0, end, &str); 在 Atlas.cpp 之前 if (!readValue(end, &str)) return abortAtlas(self);

请注意,自 Spine 1.9 使用新格式以来,您可能会遇到其他问题,例如未知附件类型网格/蒙皮网格。您需要更新 2.2.3 中的主干代码以修复所有问题。

于 2014-08-11T07:26:56.987 回答