关于cocos2d-x精灵加亮及变灰效果
//根据现有CCSprite,变亮和变灰
static CCSprite* graylightWithCCSprite(CCSprite* oldSprite,bool isLight)
{
//CCSprite转成CCimage
CCPoint p = oldSprite->getAnchorPoint();
oldSprite->setAnchorPoint(ccp(,));
CCRenderTexture *outTexture = CCRenderTexture::create((int)oldSprite->getContentSize().width,(int)oldSprite->getContentSize().height);
outTexture->begin();
oldSprite->visit();
outTexture->end();
oldSprite->setAnchorPoint(p); CCImage* finalImage = outTexture->newCCImage();
unsigned char *pData = finalImage->getData();
int iIndex = ; if(isLight)
{
for (int i = ; i < finalImage->getHeight(); i ++)
{
for (int j = ; j < finalImage->getWidth(); j ++)
{
// highlight
int iHightlightPlus = ;
int iBPos = iIndex;
unsigned int iB = pData[iIndex];
iIndex ++;
unsigned int iG = pData[iIndex];
iIndex ++;
unsigned int iR = pData[iIndex];
iIndex ++;
//unsigned int o = pData[iIndex];
iIndex ++; //原来的示例缺少
iB = (iB + iHightlightPlus > ? : iB + iHightlightPlus);
iG = (iG + iHightlightPlus > ? : iG + iHightlightPlus);
iR = (iR + iHightlightPlus > ? : iR + iHightlightPlus);
// iR = (iR < 0 ? 0 : iR);
// iG = (iG < 0 ? 0 : iG);
// iB = (iB < 0 ? 0 : iB);
pData[iBPos] = (unsigned char)iB;
pData[iBPos + ] = (unsigned char)iG;
pData[iBPos + ] = (unsigned char)iR;
}
}
}else{
for (int i = ; i < finalImage->getHeight(); i ++)
{
for (int j = ; j < finalImage->getWidth(); j ++)
{
// gray
int iBPos = iIndex;
unsigned int iB = pData[iIndex];
iIndex ++;
unsigned int iG = pData[iIndex];
iIndex ++;
unsigned int iR = pData[iIndex];
iIndex ++;
//unsigned int o = pData[iIndex];
iIndex ++; //原来的示例缺少
unsigned int iGray = 0.3 * iR + 0.4 * iG + 0.2 * iB;
pData[iBPos] = pData[iBPos + ] = pData[iBPos + ] = (unsigned char)iGray;
}
}
} CCTexture2D *texture = new CCTexture2D;
texture->initWithImage(finalImage);
CCSprite* newSprite = CCSprite::createWithTexture(texture);
delete finalImage;
texture->release();
return newSprite;
}
http://blog.csdn.net/chenli0741/article/details/8860036
在这个博客提供的png图片alpha通道的精灵变灰与变亮的。
但是,在变灰的时候,如果图片是有红色的话,则会出现不同的效果,不是叠加,而图片直接变灰。
可以看出,第二种情况,不是叠加上去的,而是把图片都变灰了。由于不怎么熟悉ARGB,还未解决的办法。
关于cocos2d-x精灵加亮及变灰效果的更多相关文章
- UIImageView变灰
1.UIImageView圆角 CALayer *l = [cell.imgAvatarImage layer]; [l setMasksToBounds:YES]; [l setCornerRadi ...
- [原]quick2.25精灵变灰
由于quick2.25没有导出shader相应的接口,所以2.25无法直接使用shader. 本文简单介绍如何导出相应接口,同时教大家使用shader 实现精灵变灰 一.编写静态函数,以供导出使用(直 ...
- cocos2d 3.X Shader 变暗和变灰
转自http://www.waitingfy.com/archives/1741 1.为了节约一张图引发的Shader使用 我们注意到这个游戏当中经常使用一些按钮,美术会给两张图,一张稍微暗点,表示 ...
- 怎么让让整个HTML页面变灰
怎么让让整个HTML页面变灰 其实很简单,我们只需要一句话. html {filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1 ...
- CSS使图片变灰
为了悼念,各大网站都纷纷将自己的站点颜色调灰,就连图片也一样,到底如何实现的呢,请看下面的代码. 〈img src="http://hovertree.com/hvtimg/201512/f ...
- NGUI 图片变灰
效果图 1.先准备好一个变灰shader.代码如下 Shader "Custom/Gray" { Properties { _MainTex ("Base (RGB), ...
- UIButton 点击后变灰
+(UIButton *)getBlueButtonWithTitle:(NSString *)aTitle{ UIButton *button = [UIButton buttonWithType: ...
- 转载网易博客:整理各大网站让网站变灰的css代码
2013-07-21 15:06:47 北京时间2013年4月20日8时02分四川省雅安市芦山县(北纬30.3,东经103.0)发生7.0级地震.震源深度13公里.各大网站将其网站变灰,本人整理了下部 ...
- 实现JQuery EasyUI右键菜单变灰不可用效果
使用过EasyUI的朋友想必都知道疯狂秀才写的后台界面吧,作为一个初学者我不敢妄自评论它的好坏,不过它确实给我们提供了一个很好框架,只要在它的基础上进行修改,基本上都可以满足我们开发的需要. 知道“疯 ...
随机推荐
- css实现网页布局随滚轮变化响应移动
_position:absolute; _top:expression(eval(document.documentElement.scrollTop)); 1.第一句代码 _position:abs ...
- Word图片显示不完整
选中图片和上下文字,段落里选择单倍行距,其他行距不行.
- iOS开发UI篇—UITableviewcell的性能问题
iOS开发UI篇—UITableviewcell的性能问题 一.UITableviewcell的一些介绍 UITableView的每一行都是一个UITableViewCell,通过dataSource ...
- Android用户界面 UI组件--AdapterView及其子类(二) AdapterViewAnimator及其子类
AdapterViewAnimator:当在视图间切换时会显示动画. android:animateFirstView 定义ViewAnimation首次显示时是否对当前视图应用动画. android ...
- Azure 媒体服务的 RTMP 支持和实时编码器
Cenk Dingiloglu Azure 媒体服务高级项目经理 直播流媒体目前已在公共预览版中提供,其中一项受支持的输入协议便是 RTMP.RTMP 是用于输入和分发包括直播流媒体在内的丰富媒体的一 ...
- C#下多进程共同读写同一文件
最近遇到这样一个需求,用C#写一个界面,在界面上实时输出一个日志文件. 实时检测文件变化,以便刷新界面显示,可以用FileSystemWatcher组件,响应Changed事件即可. 关键是在Chan ...
- Oracle体系结构图
1 oracle数据库主要有数据文件database和数据库实例instance组成.用户通过用户进程链接到server process.在数据库启动的时候,需要依赖于参数文件parameter fi ...
- Jquery扩展- 倒计时
Source Code (function($) { $.fn.countdown = function(options) { // default options var defaults = { ...
- DAL与数据库类型的对应关系
MSSQL Server类型 DbType类型 C#类型 MySql类型 DbType类型 C#类型 bit Boolean bool bit(1) Boolean bool tinyint ...
- JNI 从C文件向Java文件传递多个参数
JNI C主函数 #include <jni.h> #include <string.h> #include <android/log.h> #include &q ...