新建一个hellworld 工程然后再Hellworld里面添加一个对象 CCRenderTexture * darknessLayer;

然后在在hellord init函数中添加代码

light.png采用荣光混合羽化的图用来遮盖

CCSprite 
*sprite1=LightCCSprite::spriteWithFile("light.png");//继承ccsprite新建对象
sprite1->setPosition(ccp(100,100));
this->addChild(sprite1,2);
sprite1->runAction(CCRepeatForever::actionWithAction((CCActionInterval 
*)CCSequence::actions(CCMoveBy::actionWithDuration(3.0f,ccp(300,0)),CCMoveBy::actionWithDuration(0.1f,ccp(-300,0)),NULL)));

darknessLayer = 
CCRenderTexture::renderTextureWithWidthAndHeight(size.width, 
size.height);
darknessLayer->setPosition(ccp( size.width /2 , 
size.height/2 
));
this->addChild(darknessLayer,20);
darknessLayer->clear(0,0,0,0.5f);//设置黑夜笼罩

覆盖draw函数

void 
HelloWorld::draw(){
darknessLayer->clear(0,0,0,0.8f);//必须的不然产生光亮区域不还原。。。。。
CCLayer::draw();

}

LightCCSprite需要覆盖两个函数

static CCSprite *spriteWithFile(const char * 
filename){
CCSprite *pobSprite = new 
LightCCSprite();//这里才会调用draw,而不是CCSprite的draw
if (pobSprite 
&& 
pobSprite->initWithFile(filename))
{
pobSprite->autorelease();
return 
pobSprite;
}
CC_SAFE_DELETE(pobSprite);
return 
NULL;
}
void draw(){

//CCSprite::draw();//如果不取消的话如果两个lightCCSPrite对象只有一个会产生亮光

((HelloWorld*)getParent())->darknessLayer->begin();
// glClear(GL_COLOR_BUFFER_BIT);
glBlendFunc(GL_ZERO, 
GL_ONE_MINUS_SRC_ALPHA); //
glColorMask(0.0f, 0.0f, 0.0f, 
1.0f);//关键句

#define kQuadSize sizeof(m_sQuad.bl)
if 
(m_pobTexture)
{
glBindTexture(GL_TEXTURE_2D, 
m_pobTexture->getName());
}
else
{
glBindTexture(GL_TEXTURE_2D, 
0);
}
long offset = (long)&m_sQuad;
// 
vertex
int diff = offsetof(ccV3F_C4B_T2F, 
vertices);
glVertexPointer(3, GL_FLOAT, kQuadSize, (void*)(offset + 
diff));
// color
diff = offsetof( ccV3F_C4B_T2F, 
colors);
glColorPointer(4, GL_UNSIGNED_BYTE, kQuadSize, (void*)(offset 
+ diff));
// tex coords
diff = offsetof( ccV3F_C4B_T2F, 
texCoords);
glTexCoordPointer(2, GL_FLOAT, kQuadSize, (void*)(offset + 
diff));
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

glColorMask(1.0f, 1.0f, 1.0f, 
1.0f);
((HelloWorld*)getParent())->darknessLayer->end();
}

效果图

cocos2d-x实现透视朦胧光照效果相关推荐

  1. 史上最简单的3D森林

    // 一种简单的树类 package { import flash.display.Sprite; public class Tree extends Sprite { public var xpo ...

  2. 中国计算机图形学研究进展

    中国计算机图形学研究进展 2016-09-08 刘永进  科技导报 作者个人主页:  http://cg.cs.tsinghua.edu.cn/people/~Yongjin/Yongjin.htm ...

  3. 软件测试自学摄影审美,【摄影讲评】摄影常用的5种透视 第1234讲?

    津门网推荐搜索照片点评 拍照错误 风光后期 在现实的生活中,我们拍摄的对象,绝大多数都是立体的,而照片却是平面的,想要表现出物体实际的效果,就必须借助能在平面照片上使得我们的视觉产生深度感的表现手段- ...

  4. Improve Performance and Reduce Memory with PVRTC Textures and Cocos2d

    转载自:http://www.uchidacoonga.com/2011/07/pvrtc-textures-and-cocos2d/ Hello everyone! A few months hav ...

  5. 动态添加跨行表格_学会这2招,轻松搞定数据透视表动态更新,效率猛增一倍...

    私信回复关键词[福利],获取丰富办公资源,助你高效办公早下班! Hello,大家好,我是最近在研究数据透视表的小爽~ 最近,我收到了一个学员的求助: 简单归纳一下,这个问题就是: 如何能让数据透视表的 ...

  6. 【Cocos2d开发】Cocos2d下安卓环境的搭建

    在进行Cocos2d游戏开发前 我们先来配置一下环境,我们先来准备一下工具,我们所需要的工具分别为: 1.Cocos2d引擎 2.JDK 3.SDK 4.NDK 5.ANT 6.ADT 1.下载Coc ...

  7. cocos2d 从v1.x升级到v2.x需要注意的几个地方

    首先v1.x一些CCNode定位函数实现的有问题,导致返回的CCPoint的x坐标不正确(超出320后无变化),怀疑是其对屏幕旋转判断的不正确;而且这种现象在iOS 7.1之前的模拟器中运行都正常,在 ...

  8. cocos2d游戏jsc文件格式解密,SpideMonkey大冒险

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 介绍cocos2d游戏中常用的jsc格式文件的解密." 01 - 在破解游戏应用中,经常会碰到后缀为jsc的文件,这是基于coco ...

  9. 如何优化cocos2d程序的内存使用和程序大小:第一部分

    译者: 在我完成第一个游戏项目的时候,我深切地意识到"使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰".而我刚开始接触cocos2d的时候,社区 ...

最新文章

  1. 介绍理想工作计算机 英语作文,我的理想工作英语作文(精选5篇)
  2. 成功解决on line , but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
  3. VTK:隐式函数之ImplicitSphere
  4. pydev集成mysql_【Python】Windows平台下Python、Pydev连接Mysql数据库
  5. 使用GBDT+LR作点击率预测
  6. python搭建分布式集群_Spark完全分布式集群搭建【Spark2.4.4+Hadoop3.2.1】
  7. Java包装类和基本数据类型的对照
  8. Size Balanced Tree
  9. Win10 家庭版找不到 gpedit.msc;win10怎样关闭windows defender
  10. AndroidStudio学习
  11. [vue-router] Duplicate named routes definition: { name: “XXX“, path: “XXX“ }
  12. 和菜鸟们一起攻克金盾2018SS加密视频
  13. 计算机课听课评语和建议,听课记录的评语及建议
  14. 电商型网站要怎么制作?把住这三个关键点
  15. 基于VUE的SVG动画处理(一)
  16. openssl 开发库下载集合
  17. androidstudio配置夜深模拟器
  18. ROS--rospy
  19. R语言爬虫豆瓣高评分电影(喝最烈的酒,熬最深的夜,吃最好的胃药,敷最贵的面膜)
  20. python笔记03:数字类型string

热门文章

  1. 世界最清楚tensorflow入门教程
  2. 华为设备无线环境中的MAC认证
  3. FlexRay 介绍
  4. html中ol和li,HTML ol和li标签
  5. 新海诚没有参与制作的作品_全能的新海诚,最初几部作品都是他一个人完成的!但是却有缺陷!...
  6. 如何用python计算函数的值域_(完整版)求函数定义域及值域方法及典型题归纳
  7. [048量化交易]python获取股票 量比 换手率 市盈率-动态 市净率 总市值 流通市值写入数据库MongoDB
  8. linux java性能监控工具_常用Linux 性能监测工具
  9. 计算机维护宝典,分分钟教你“修电脑”的宝典,值得收藏
  10. Jenkins流水线极速打包