【问题标题】:Warning after initializing particle effects in Cocos2dx - "libpng warning: iCCP: known incorrect sRGB profile"在 Cocos2dx 中初始化粒子效果后出现警告 - “libpng 警告:iCCP:已知不正确的 sRGB 配置文件”
【发布时间】:2020-01-27 13:43:52
【问题描述】:

我正在尝试在我的 Cocos2d-x 游戏代码中加载粒子效果(.plist 格式),我正面临着警告:"libpng warning: iCCP: known incorrect sRGB profile",如问题中所述。我对此进行了一些研究,其他询问similar questions 的 StackOverflow 用户在加载 .png 文件时遇到了这个问题。

但是,我在初始化 .plist 文件时遇到了同样的问题。有关如何删除此警告的任何见解都会有所帮助。请注意,我在加载 .plist 文件时没有遇到任何问题,但警告正在污染我的日志流。

示例代码:

ParticleSystem* testStar = testNode->getChildByName<ParticleSystem*>("star");
testStar->initWithFile(filePath + "/" + "test.plist"); //valid filePath
testStar->setVisible(true); 

另外,为了确认这不是 .plist 文件本身的问题,我尝试在我的 UI 编辑器工具上手动加载该文件,并且似乎加载它没有任何问题。

如有必要,我准备提供有关我的环境的更多详细信息。我也尝试在一个空白项目中执行上述操作,并且能够重现相同的警告。

Cocos2d-x 版本:cocos2d-x-3.14.1

【问题讨论】:

    标签: c++ cocos2d-iphone cocos2d-x cocos2d-x-3.0 particles


    【解决方案1】:

    我能够通过使用ParticleSystem 的子类而不是ParticleSystem 本身来解决这个问题。我使用的子类是ParticleSystemQuad。此外,我意识到由于 Cocos2D 更新调度程序,initWithFile API 在我的代码中被多次调用。这可能是导致此警告的原因。

    为了解决这个警告,我创建了一个新变量/系统,并为其分配了一个父级,同时将新变量的位置设置为一个众所周知的(期望位置)节点的位置。

    /* Getting the desired particleEffect position */    
    const Vec2& desiredPos = testNode->getChildByName("blablablah")->getPosition();
    std::string filePath = "/"; //assign a directory for the .plist
    
    // Avoid exponentiation
    if (!testNode->getChildByName("sampleParticle")) {
        auto p1 = ParticleSystemQuad::create(filePath + "/" + "test.plist");
        p1->setPosition(desiredPos);
        p1->resetSystem();
        p1->setName("sampleParticle");
        p1->setVisible(true);
        testNode->addChild(p1);
    }
    

    【讨论】:

      猜你喜欢
      • 2014-05-09
      • 2018-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      相关资源
      最近更新 更多