您的位置:首页 > 移动开发 > Cocos引擎

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

2015-04-02 09:52 393 查看
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资源文件中找到。然后放到工程资源目录下就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  灰度 精灵 opengl