用CCRenderTexture和BlendFunc制作游戏教学时使用的黑色覆盖层
来源:互联网 发布:彩虹六号 知乎 编辑:程序博客网 时间:2024/05/18 00:16
游戏快要完成了,准备做教学。
我们的教学是在整个界面上盖一层灰色图片,然后把提示点击的按钮部分亮出来,也就是在一块黑色图片上,按需求扣空一小部分。如图,把武器部分扣空,那么在其它地方又会扣空其它部分,而且要可以扣空多个不规则图形。
方法:
先计算出要扣空部分的位置和大小,这个很容易,应为它已经在你的界面上了,用->getpositon,->getContentSize,再转换一下世界坐标就可以得到。
然后用混合模式,把灰色图片对应的位置扣空就行了。
哎、我比较懒、、、直接贴代码了。。。
CCSprite* createLightMaskSprite(CCSprite* base,vector<CCSprite*> lightNodes){int baseWidth = base->getContentSize().width;int baseHeight = base->getContentSize().height;CCRenderTexture* rt = CCRenderTexture::create(baseWidth, baseHeight);//创建纹理渲染范围ccBlendFunc blendFunc;blendFunc.src = GL_DST_ALPHA;//表示使用目标颜色的alpha值来作为因子blendFunc.dst = GL_ZERO;//不使用目标颜色
base->setPosition(ccp(baseWidth/2.0f,baseHeight/2.0f));rt->begin();base->visit();//注意,这里需要先绘制A,遮罩图片int nodeNum = lightNodes.size();for (int i=0;i<nodeNum;i++){lightNodes[i]->setBlendFunc(blendFunc);//注意渲染顺序,先渲染的为的精灵的颜色为目标颜色,后渲染的精灵的颜色为源颜色。lightNodes[i]->visit();}rt->end();return CCSprite::createWithTexture(rt->getSprite()->getTexture());}
0 0
- 用CCRenderTexture和BlendFunc制作游戏教学时使用的黑色覆盖层
- 使用CCRenderTexture来是实现游戏的暂停
- 关于CCRenderTexture使用的注意事项
- cocos2d-x混合BlendFunc的使用
- 更改 cocos2d-x CCRenderTexture 的使用方式
- 【转】cocos2dx橡皮擦效果,CCRenderTexture的使用
- 子窗体覆盖层的颜色和透明度更改
- Cocos2d-x v3.X的颜色混合BlendFunc使用详解
- Cocos2d-x v3.X的颜色混合BlendFunc使用详解
- 分享使用Box2D和Cocos2D制作弹球游戏的方法
- 覆盖层
- 百度地图覆盖层OverLayer用自定义的View来替换
- Flex中如何利用backgroundDisabledColor和disabledOverlayAlpha样式,在一个容器的enabled属性为false时添加一个覆盖层
- Cocos2dx基础之CCRenderTexture截图保存并使用的实现
- CCRenderTexture生成的纹理
- CCRenderTexture
- 使用construct2制作一个简单的游戏
- 用Construct 2制作游戏时的图层和人物设置
- cocos2d-x调度器原理
- c++之函数原型
- Android服务器通信的几种方式详解
- cocos2d-x动作原理
- cocos2d-x触摸分发器原理
- 用CCRenderTexture和BlendFunc制作游戏教学时使用的黑色覆盖层
- 到底做运维还是做开发
- CCOrbitCamera卡牌翻转效果
- CCTableView的使用和注意事项
- 算法荐书(程序员练功+大众科普)
- cocos2d-x中使用json
- CCScale9Sprite的使用
- 一步步教你如何在 Visual Studio 2013 上使用 Github
- 解决TableView / ScrollView上的Menu问题(1滑出View区域还可点击2导致点击menu后View不能滑动)