cocos2dx 3.x中灰度精靈的用法


std::string shader = FileUtils::getInstance()->getStringFromFile("example_greyScale.fsh");

GLProgramCache::getInstance()->addGLProgram(GLProgram::createWithByteArrays(ccPositionTextureColor_noMVP_vert, shader.c_str()), "grey_effect");

//以上兩句只需要用一次就可以


auto sprite = Sprite::create("CloseSelected.png");

//保存原來的精靈着色器,並命名爲“normal_effect

GLProgramCache::getInstance()->addGLProgram(sprite->getGLProgram(), "normal_effect");

//設置精靈着色器爲灰度着色器

sprite->setGLProgram(GLProgramCache::getInstance()->getGLProgram("grey_effect"));
addChild(sprite);
sprite->setLocalZOrder(-1);

sprite->setPosition(visibleSize.width/2+100, visibleSize.height/2);


設置灰色精靈變回正常的話需要先保存原來的shader的GLProgram。也是一句代碼。

sprite->setGLProgram(GLProgramCache::getInstance()->getGLProgram("normal_effect"));


example_greyScale.fsh這個文件可以在test資源文件中找到。然後放到工程資源目錄下就可以了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章