我正在使用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
可能导致此问题的原因是什么?
答案 0 :(得分:0)
也许您可以在日志控制台中看到以下消息
cocos2d: SpriteFrameCache: Frame 'PlayButton.png' not found
如果那是真的那么你必须加载你的spritessheet:
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("spritessheet.plist", "spritesheet.png");