很常用的功能,比如说RPG游戏里,某个角色挂了,Ta的头像变成黑白的,加了复活魔法又变回彩色的了。如果把所有图片都准备一张黑白的,又麻烦也挺占空间的。其实,图片灰阶用Cocos自带的方法就可以实现,不止如此,除了灰阶还有各种其他效果,甚至完全通过参数调整自己想要的都可以。

方法如下:
[code]
auto fileUtiles = FileUtils::getInstance();
auto fragmentGrayFullPath = fileUtiles->fullPathForFilename("gray.fsh");
auto fragSource = fileUtiles->getStringFromFile(fragmentGrayFullPath);
auto glprogram = GLProgram::createWithByteArrays(ccPositionTextureColor_noMVP_vert, fragSource.c_str());
grayGLProgrameState = GLProgramState::getOrCreateWithGLProgram(glprogram);
grayGLProgrameState->retain();
想要变黑白的Sprite->setGLProgramState(grayGLProgrameState);
[/code]
里面的文件gray.fsh是可以自己编辑的,直接用记事本打开即可,里面的内容是这样的:
[code]
#ifdef GL_ES
precision mediump float;
#endif
varying vec4 v_fragmentColor;
varying vec2 v_texCoord;
void main(void)
{
vec4 c = texture2D(CC_Texture0, v_texCoord);
gl_FragColor.xyz = vec3(0.2126*c.r + 0.7152*c.g + 0.0722*c.b);
gl_FragColor.w = c.w;
}
[/code]
若要知道每个参数的含义,可以看这个帖子http://blog.sina.com.cn/s/blog_923fdd9b0101ew6e.html
另外,Cocos的示例程序里有好多已经编辑好的.fsh文件,直接考过来用即可。变回原来色调的.fsh如下:
[code]
#ifdef GL_ES
precision mediump float;
#endif
varying vec4 v_fragmentColor;
varying vec2 v_texCoord;
void main(void)
{
gl_FragColor = texture2D(CC_Texture0, v_texCoord);
}
[/code]

【Cocos2d-x游戏开发】彩色Sprite设置黑白,还有相关推荐

  1. 《Cocos2d 跨平台游戏开发指南(第2版)》一1.9 添加动作到精灵

    本节书摘来异步社区<Cocos2d 跨平台游戏开发指南(第2版)>一书中的第1章,第1.9节,作者: [印度]Siddharth Shekar(谢卡)译者: 武传海 责编: 胡俊英,更多章 ...

  2. iOS cocos2d 2游戏开发实战(第3版)---你的第一个游戏!

    2019独角兽企业重金招聘Python工程师标准>>> 随着苹果公司不断地创新与发展,新的iPhone 5.iPad 4以及iPad mini产品相继问世,包括iOS与Xcode在内 ...

  3. iOS cocos2d 2游戏开发实战(第3版)

    <iOS cocos2d 2游戏开发实战(第3版)> 基本信息 原书名:Learn cocos2d 2: Game Development for iOS 作者: (美)Steffen I ...

  4. 【通知】▁▂▃ Himi 最新著作《iOS游戏编程之从零开始—Cocos2d-x与cocos2d引擎游戏开发》★书籍源码+第4/5/6样章★-免费下载★ ▃▂▁

    2013年新年,Himi的第二本著作:<iOS游戏编程之从零开始-Cocos2d-x与cocos2d引擎游戏开发>一书正式发售: (大家可以到新华书店.淘宝.拍拍.当当.亚马逊等进行购买) ...

  5. Cocos2D手机游戏开发之优化篇

    Cocos2D手机游戏开发之优化篇 在这个手机游戏盛行已久的年代,一款产品想要博得更多用户的喜爱就要在细节上做得更加到位.而游戏的优化在这里面起到了非常关键的作用.试想下,一款画面和玩法都深受用户喜欢 ...

  6. 添加类iOS cocos2d 2游戏开发实战(第3版)

    这两天一直在学习添加类之类的问题,现在正好有机会和大家讨论一下. 第1章 简介 1 1.1 第3版中的新增内容 2 1.2 选择ios版cocos2d的来由 3 1.2.1 收费 3 1.2.2 开源 ...

  7. htc vive游戏开发_如何设置HTC Vive并开始玩游戏

    htc vive游戏开发 If you want to experience true virtual reality, with the ability to move around as you ...

  8. Android游戏开发---抗锯齿设置

    新年新气象,发篇文章.祝看到文章的同志们新年快乐. 抗锯齿在游戏中很重要.玩过大型游戏的同学肯定知道都有抗锯齿的设置.Android中也需要. 出现锯齿条件: 倾斜或旋转.快速变化. 当在屏幕上画一条 ...

  9. 【Android游戏开发之一】设置全屏以及绘画简单的图形

    直接上代码: package com.himi; import android.app.Activity; import android.os.Bundle; import android.view. ...

最新文章

  1. Spring Cloud Alibaba基础教程:使用Sentinel实现接口限流
  2. python电脑配置大概要多少钱-学python最电脑配置有要求么
  3. 关于jQuery获取Action返回的JSON数据 项目真实案例 记录(Struts2)
  4. 33个热门数据分析软件,你都用过哪些?
  5. 在 Blazor WebAssembly 中使用 gRPC-Web
  6. 2021 元宇宙研究报告!
  7. memcache面试
  8. c++新增加的一个概念称之为_新概念四册中的这个句子是对的吗?
  9. 《CUDA C编程权威指南》——2.2 给核函数计时
  10. Win7-64bit下MapX的安装和使用
  11. eclipse adt 安卓开发配置
  12. oracle startup open ora 03113,Oracle 11g startup时报ORA-03113通信通道的文件结尾
  13. 区块链开发完整指南。如何开发一款区块链项目?
  14. 2013年节假日放假安排时间表
  15. C++实践 极简版本贪吃蛇小游戏
  16. 基于区块链与IPFS的数据共享系统搭建步骤
  17. 2019年程序员最值得选择的100家互联网公司排名
  18. iOS-控件之间的继承
  19. 【小组专题一:数论入门:整数】数和序列 | 和与积 | 数学归纳与第二数学归纳
  20. POJ 1654 乱搞题?

热门文章

  1. 国内安卓和国外android,面对国内外这么多让人眼花缭乱的安卓手机,普通消费者你该怎么选?...
  2. 游戏AI:只是AI间的游戏,还是游戏的未来?
  3. 关于TLC2272系列参数
  4. 解决金山词霸2007无法在Acrobat Reader 7.0和Acrobat 7.0下取词的办法
  5. head first java第二章学习笔记
  6. 暴强贴:从.NET平台调用Win32 API
  7. K-verse 合作伙伴访谈|与 Studio Dragon 一起进入韩剧元宇宙世界
  8. 精选Android中高级面试题 -- 终结篇:高级干货
  9. Ubuntu安装RabbitMQ
  10. 情人节送玫瑰花数的含义,男的必看。