Cocos2d x 为什么initWithPriteFrameName()和initWithFile()对精灵有不同的影响?

Cocos2d x 为什么initWithPriteFrameName()和initWithFile()对精灵有不同的影响?,cocos2d-x,sprite,init,Cocos2d X,Sprite,Init,我需要一个粉碎效果,我可以用这两种不同的方法成功初始化我的精灵,但是粉碎效果是不同的 (忽略图像中的文本,下面是代码) 我使用的initWithPriteFrameName方法无法获得我需要的效果,有人可以告诉我原因吗?initWithPriteFrameName需要帧名,而initWithFile需要文件名。您发送的两个都是相同的。file表示磁盘上的实际文件,frame表示缓存在内存中的帧名称。从下面的代码中,您可以在内存中添加帧 initWithPriteFrameName需要帧名,而

我需要一个粉碎效果,我可以用这两种不同的方法成功初始化我的精灵,但是粉碎效果是不同的

  • (忽略图像中的文本,下面是代码)


    我使用的initWithPriteFrameName方法无法获得我需要的效果,有人可以告诉我原因吗?

    initWithPriteFrameName需要帧名,而initWithFile需要文件名。您发送的两个都是相同的。file表示磁盘上的实际文件,frame表示缓存在内存中的帧名称。从下面的代码中,您可以在内存中添加帧


    initWithPriteFrameName需要帧名,而initWithFile需要文件名。您发送的两个都是相同的。file表示磁盘上的实际文件,frame表示缓存在内存中的帧名称。从下面的代码中,您可以在内存中添加帧


    我使用shatter方法ref,我使用shatter方法ref,我以前添加过帧,我可以使用initWithPriteFrameName成功初始化我的精灵。但是,具有InitWithPriteFrameName的精灵init与initWithFile具有不同的破碎效果。请对您的问题进行更多的解释,因为对我来说,两者的工作原理相同,并且不会有不同的行为。请参阅,我实现了破碎效果。根据他的例子,我使用了一个.png文件,它可以实现粉碎效果。然而,当我使用.plist文件时,我无法意识到这一效果。你能分享plist和相关的png吗?非常感谢,我已经向GitHub提交了部分代码和资源:我之前已经添加了帧,我可以使用initWithPriteFrameName成功初始化我的精灵。但是,具有InitWithPriteFrameName的精灵init与initWithFile具有不同的破碎效果。请对您的问题进行更多的解释,因为对我来说,两者的工作原理相同,并且不会有不同的行为。请参阅,我实现了破碎效果。根据他的例子,我使用了一个.png文件,它可以实现粉碎效果。然而,当我使用.plist文件时,我无法意识到这一效果。您能分享plist和相关png吗?非常感谢,我已经向GitHub提交了部分代码和资源:
    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;
    }
    
    SpriteFrameCache* cache = SpriteFrameCache::getInstance();
    cache->addSpriteFramesWithFile("animations/grossini.plist");