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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值