为cocos2d 的精灵修改色相(Hue)的问题困扰了我很久,网上一直没有找到比较靠谱的解决方案。
前段时间在https://github.com/alex314/CCSpriteWithHue发现国外开发者在 cocos2d-iPhone 2.x版本上面实现了对精灵的色相修改,最近有时间在cocos2d-x 3.x 上重新实现了一下。
实现的效果如下:
原图:

色相修改:

把关键代码分享给大家:
CCSpriteWithHue.zip (4 KB)
注意:Debug模式下,需要注释掉 CCGLProgramState.cpp apply() 方法中 switch语句default分支下的断言
// CCASSERT(false, "Invalid UniformValue");
调用方法如下:
CSpriteWithHue *sprite = CCSpriteWithHue::create("HelloWorld.png");
sprite->setHue(4.6);//值在 0 ~ 2 Pi 之间
