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

前端之家收集整理的这篇文章主要介绍了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");@H_301_11@

//以上两句只需要用一次就可以@H_301_11@


@H_301_11@

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

@H_301_11@

//保存原来的精灵着色器,并命名为“normal_effect@H_301_11@

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

//设置精灵着色器为灰度着色器
@H_301_11@ sprite->setGLProgram(GLProgramCache::getInstance()->getGLProgram("grey_effect"));
addChild(sprite);
sprite->setLocalZOrder(-1);

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


@H_301_11@

设置灰色精灵变回正常的话需要先保存原来的shader的GLProgram。也是一句代码@H_301_11@

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


@H_301_11@

example_greyScale.fsh这个文件可以在test资源文件中找到。然后放到工程资源目录下就可以了。 @H_301_11@

猜你在找的Cocos2d-x相关文章