加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 20:46:08 所属栏目:百科 来源:网络整理
导读:std::string shader = FileUtils::getInstance()-getStringFromFile("example_greyScale.fsh"); GLProgramCache::getInstance()-addGLProgram(GLProgram::createWithByteArrays(ccPositionTextureColor_noMVP_vert,shader.c_str()),"grey_effect"); //以上两

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资源文件中找到。然后放到工程资源目录下就可以了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读