2014-07-25 16 views
0

我使用的是cocos2d-x 2.2.3和spine 1.9.07。 我已經通過Spine導出了「seller.atlas」,「seller.json」和「seller.png」,並將它們放在了我的項目的Resource文件夾中。然後,在init()方法我添加這些代碼中使用骨骼動畫Spine Atlas文件的錯誤

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是空,因此它必須是什麼毛病地圖集文件。 但我不知道自己做錯了什麼是:(

任何幫助,將不勝感激:!d

回答

0

這是因爲cocos2dx 2.2.3使用舊脊柱解析器脊柱1.9生成一個不同的地圖集文件。格式有額外的行 「大小:XXX,XXX」 爲了解決這個特定的問題,加上 的readLine(0,最終,& STR); 如果(readValue(年底前 在Atlas.cpp ,! & str))return abortAtlas(self);

請注意,您可能會遇到其他問題,例如自Spine 1.9使用新格式以來的未知附件類型網格/蒙皮網格。你需要更新2.2.3中的spine代碼來修復所有的問題。

+0

是的你是對的。我剛剛使用由https://github.com/EsotericSoftware/spine-runtimes提供的EsotericSoftware更新了Spine運行時,問題就消失了。 :d –