cocos2dx精灵变灰
2015-07-24 15:19
465 查看
使用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::createWithByteArrays(ccPositionTextureColor_noMVP_vert, fragSource.c_str()); sp->setShaderProgram(glprogram); CHECK_GL_ERROR_DEBUG(); } while (0); } void ColorUtil::removeGray(CCSprite* sp) { do { CCGLProgram* pProgram = CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColor); sp->setShaderProgram(pProgram); CHECK_GL_ERROR_DEBUG(); } while (0); }
相关文章推荐
- cocos2d-x 开发遇到的坑
- 【winows7+android-ndk-r9+Cygwin 】cocos2dx 2.*游戏移植Android平台完全手册
- Cocos2d-x中获取系统时间
- cocos2dx 3.x Value、Vector和Map意识
- Cocos2dx开发之锚点实例讲解
- cocos2dx-3.1 接入多盟广告sdk+Android (3)
- Cocos2d-x 3.1 环境搭建和创建工程
- cocos2dx-3.1 接入多盟广告sdk+Android (2)
- cocos2dx-3.1 接入多盟广告sdk+Android (1)
- Cocos2d-x 3.0 android环境搭建、创建工程、编译
- cocos2dx中的游戏储存-SQLite
- cocos2d-x 入门之调度器(scheduler)
- cocos2dx抗锯齿
- Cocos2d js 3.2使用Scale9Sprite 九宫图
- Cocostudio学习笔记(3) ImageView + Slider
- cocos2dx游戏开发学习基础(二)
- cocos2dx游戏开发学习基础篇(一)
- Cocos2d-x开发教程 第三节 深入Sprite
- Cocos2d-x AnchorPoint锚点
- 深入理解cocos2d-x的anchorPoint锚点和scale缩放之间的配合方式