断言失败spriteFrameName无效

时间:2014-05-18 17:30:54

标签: c++ ios xcode cocos2d-x

我正在使用Cocos2dx构建游戏。我有一个精灵表和动画plist,指定所有图像的位置。

出于某种原因,在加载游戏时,我收到以下错误:

(char [256]) msg = "Invalid spriteFrameName: PlayButton.png"

它来自CCSprite.cpp的第159行:

CCSprite* CCSprite::createWithSpriteFrameName(const char *pszSpriteFrameName)
{
    CCSpriteFrame *pFrame = CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(pszSpriteFrameName);

#if COCOS2D_DEBUG > 0
    char msg[256] = {0};
    sprintf(msg, "Invalid spriteFrameName: %s", pszSpriteFrameName);
    CCAssert(pFrame != NULL, msg);
#endif

    return createWithSpriteFrame(pFrame);
}

我检查了我的.plist,我确实有一个PlayButton.png的条目,所以我不知道为什么它说它无效。

MainMenu::init()方法调用该方法:

fileName = (CCString*)sc->imageDict->objectForKey("GUI_StartButton-image");
CCSprite *startGameSprite = CCSprite::createWithSpriteFrameName( fileName->m_sString.c_str() ); <--- CRASHING HERE

可能导致此问题的原因是什么?

1 个答案:

答案 0 :(得分:0)

也许您可以在日志控制台中看到以下消息

cocos2d: SpriteFrameCache: Frame 'PlayButton.png' not found

如果那是真的那么你必须加载你的spritessheet:

CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("spritess‌​heet.plist", "spritesheet.png");