我需要一个破碎效果,我可以成功地用这两种不同的方法初始化我的精灵,但破碎效果是不同的。
(忽略图像中的文字,下面是代码)
bool ShatterSprite::init(const string &texFileName, float gridSideLen, GameTextureResType resType)
{
m_gridSideLen = gridSideLen;
switch (resType) {
case PLIST:
Sprite::initWithSpriteFrameName(texFileName); //sprite Frame
break;
case LOCAL:
Sprite::initWithFile(texFileName);
break;
default:
CCASSERT(0, "no here");
break;
}
createShatter();
return true;
}
我使用initWithSpriteFrameName的方法无法获得我需要的效果,有人可以告诉我原因吗?
答案 0 :(得分:0)
initWithSpriteFrameName需要帧名称,initWithFile需要文件名。你在两者中发送相同的内容。 file表示磁盘上的实际文件,frame表示已在内存中缓存的帧名称。从以下代码中,您可以在内存中添加帧
SpriteFrameCache* cache = SpriteFrameCache::getInstance();
cache->addSpriteFramesWithFile("animations/grossini.plist");