使用shader使精灵变灰,很简单,只需下面这个类:
#ifndef __ColorUtil_H__
#define __ColorUtil_H__
#include "cocos2d.h"
USING_NS_CC;
class ColorUtil{
public:
static ColorUtil* getInstance();
ColorUtil();
~ColorUtil();
void addGray(Sprite* sp);
void removeGray(Sprite* sp);
};
#endif
#include "ColorUtil.h"
ColorUtil::ColorUtil()
{
}
ColorUtil::~ColorUtil()
{
}
static ColorUtil* instance = NULL;
ColorUtil* ColorUtil::getInstance(){
if(instance)
{
instance = new ColorUtil();
}
return instance;
}
void ColorUtil::addGray(CCSprite* sp)
{
do
{
auto fileUtiles = FileUtils::getInstance();
auto fragmentFullPath = fileUtiles->fullPathForFilename("img/shader/ccShader_PositionTextureGray_frag.fsh");//这个文件可以在官方的例子里找到
auto fragSource = fileUtiles->getStringFromFile(fragmentFullPath);
auto glprogram = GLProgram::createWith