cocos2d-x实现透视朦胧光照效果
新建一个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实现透视朦胧光照效果相关推荐
- 史上最简单的3D森林
// 一种简单的树类 package { import flash.display.Sprite; public class Tree extends Sprite { public var xpo ...
- 中国计算机图形学研究进展
中国计算机图形学研究进展 2016-09-08 刘永进 科技导报 作者个人主页: http://cg.cs.tsinghua.edu.cn/people/~Yongjin/Yongjin.htm ...
- 软件测试自学摄影审美,【摄影讲评】摄影常用的5种透视 第1234讲?
津门网推荐搜索照片点评 拍照错误 风光后期 在现实的生活中,我们拍摄的对象,绝大多数都是立体的,而照片却是平面的,想要表现出物体实际的效果,就必须借助能在平面照片上使得我们的视觉产生深度感的表现手段- ...
- 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 ...
- 动态添加跨行表格_学会这2招,轻松搞定数据透视表动态更新,效率猛增一倍...
私信回复关键词[福利],获取丰富办公资源,助你高效办公早下班! Hello,大家好,我是最近在研究数据透视表的小爽~ 最近,我收到了一个学员的求助: 简单归纳一下,这个问题就是: 如何能让数据透视表的 ...
- 【Cocos2d开发】Cocos2d下安卓环境的搭建
在进行Cocos2d游戏开发前 我们先来配置一下环境,我们先来准备一下工具,我们所需要的工具分别为: 1.Cocos2d引擎 2.JDK 3.SDK 4.NDK 5.ANT 6.ADT 1.下载Coc ...
- cocos2d 从v1.x升级到v2.x需要注意的几个地方
首先v1.x一些CCNode定位函数实现的有问题,导致返回的CCPoint的x坐标不正确(超出320后无变化),怀疑是其对屏幕旋转判断的不正确;而且这种现象在iOS 7.1之前的模拟器中运行都正常,在 ...
- cocos2d游戏jsc文件格式解密,SpideMonkey大冒险
点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 介绍cocos2d游戏中常用的jsc格式文件的解密." 01 - 在破解游戏应用中,经常会碰到后缀为jsc的文件,这是基于coco ...
- 如何优化cocos2d程序的内存使用和程序大小:第一部分
译者: 在我完成第一个游戏项目的时候,我深切地意识到"使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰".而我刚开始接触cocos2d的时候,社区 ...
最新文章
- 介绍理想工作计算机 英语作文,我的理想工作英语作文(精选5篇)
- 成功解决on line , but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
- VTK:隐式函数之ImplicitSphere
- pydev集成mysql_【Python】Windows平台下Python、Pydev连接Mysql数据库
- 使用GBDT+LR作点击率预测
- python搭建分布式集群_Spark完全分布式集群搭建【Spark2.4.4+Hadoop3.2.1】
- Java包装类和基本数据类型的对照
- Size Balanced Tree
- Win10 家庭版找不到 gpedit.msc;win10怎样关闭windows defender
- AndroidStudio学习
- [vue-router] Duplicate named routes definition: { name: “XXX“, path: “XXX“ }
- 和菜鸟们一起攻克金盾2018SS加密视频
- 计算机课听课评语和建议,听课记录的评语及建议
- 电商型网站要怎么制作?把住这三个关键点
- 基于VUE的SVG动画处理(一)
- openssl 开发库下载集合
- androidstudio配置夜深模拟器
- ROS--rospy
- R语言爬虫豆瓣高评分电影(喝最烈的酒,熬最深的夜,吃最好的胃药,敷最贵的面膜)
- python笔记03:数字类型string
热门文章
- 世界最清楚tensorflow入门教程
- 华为设备无线环境中的MAC认证
- FlexRay 介绍
- html中ol和li,HTML ol和li标签
- 新海诚没有参与制作的作品_全能的新海诚,最初几部作品都是他一个人完成的!但是却有缺陷!...
- 如何用python计算函数的值域_(完整版)求函数定义域及值域方法及典型题归纳
- [048量化交易]python获取股票 量比 换手率 市盈率-动态 市净率 总市值 流通市值写入数据库MongoDB
- linux java性能监控工具_常用Linux 性能监测工具
- 计算机维护宝典,分分钟教你“修电脑”的宝典,值得收藏
- Jenkins流水线极速打包