游戏快要完成了,准备做教学。

我们的教学是在整个界面上盖一层灰色图片,然后把提示点击的按钮部分亮出来,也就是在一块黑色图片上,按需求扣空一小部分。如图,把武器部分扣空,那么在其它地方又会扣空其它部分,而且要可以扣空多个不规则图形。

方法:

先计算出要扣空部分的位置和大小,这个很容易,应为它已经在你的界面上了,用->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());
}

 

用CCRenderTexture和BlendFunc制作游戏教学时使用的黑色覆盖层的更多相关文章

  1. Unity中制作游戏的快照游戏支持玩家拍快照

    Unity中制作游戏的快照游戏支持玩家拍快照 有些游戏支持玩家“拍快照”,也就是将游戏的精彩瞬间以图片的形式记录下来的功能.这个功能比较有趣,而且以后的用途也会很广,为此本节打算介绍:截取矩形区域内游 ...

  2. Unity制作游戏中的场景

    Unity制作游戏中的场景 1.2.3  场景 在Unity中,场景(Scene)就是游戏开发者制作游戏时,所使用的游戏场景.它是一个三维空间,对应的三维坐标轴分别是X轴.Y轴和Z轴本文选自Unity ...

  3. 使用Unity制作游戏关卡的教程(一)

    转自: http://gamerboom.com/archives/74131 作者:Matthias Zarzecki 我正在制作<Looking For Group – The Fork O ...

  4. Blockly编程:用Scratch制作游戏愤怒的小牛(小鸟)

    愤怒的小鸟曾经很热门,网上还说他是程序员最喜欢玩的游戏.最先我是WIKIOI的评测页面看到他的,后来在2014年全国信息学奥林匹克联赛第一天第三题飞扬的小鸟也看到了它.因此,突然想做一个类似愤怒的小鸟 ...

  5. 123457123456#0#-----com.threeapp.MakerHanBao01----儿童汉堡制作游戏

    ----com.threeapp.MakerHanBao01----儿童汉堡制作游戏

  6. CSS制作二级菜单时,二级菜单与一级菜单不对齐

    效果如图: 部分代码如图: <li><a href="#" target="_blank">关于我们</a> <ul& ...

  7. Java初学者作业——实现控制台的猜数字游戏。游戏运行时产生一个1~100之间的随机数字

    返回本章节 返回作业目录 需求说明: (1)实现控制台的猜数字游戏.游戏运行时产生一个1-100之间的随机数字 (2)要求用户从控制台输入数字,若输入的数字比随机数小,则输出"太小了,再大一 ...

  8. 【CityHunter】通过Unity3D来制作游戏中AR部分的内容

    嗯,最近再考虑,CityHunter中,玩家攻略藏宝图时,为了增加可玩性,应该增强在AR部分的游戏性.最近特别火的游戏<Pokemon Go>在打开摄像头以后,可以看到小精灵,实际上,如果 ...

  9. 使用Unity制作游戏关卡的教程(三)

    转自:http://gamerboom.com/archives/75593 作者:Matthias Zarzecki 本文是“使用Unity制作<The Fork Of Truth>的关 ...

随机推荐

  1. [转] Web前端优化之 Cookie篇

    原文链接: http://lunax.info/archives/3095.html Web 前端优化最佳实践第三部分面向 Cookie .目前只有 2 条实践规则. 1. 缩小 Cookie (Re ...

  2. HDU5744:Keep On Movin(字符串)

    题意: 给出t组测试数据,每组给出正整数n表示有n种字符,接下来给出n个数表示该种字符的数目,操作一下,使得可以构造的最小回文串字符数目最大且输出. 分析: 如果每个字符出现次数都是偶数, 那么答案显 ...

  3. 第三百零一天 how can i 坚持

    其实真搞不大懂自己.不喜欢巴结人,也不喜欢阿谀奉承,但老是感觉自己却又在那么做,是对自己要求太高了,想太多?? 郭娜好像把我拉黑了,拉黑就拉黑吧.或许真不合适. 睡觉.

  4. 【转】Maven实战(八)---模块划分

    本博文出自于:http://blog.csdn.net/liutengteng130/article/details/47000217    感谢! 为了防止传递依赖,我们各个模块之间尽量用直接依赖的 ...

  5. How to include JavaScript file in JSF

    In JSF 2.0, you can use <h:outputScript /> tag to render a HTML "script" element, an ...

  6. Spring入门(6)-使用注解装配

    Spring入门(6)-使用注解装配 本文介绍如何使用注解装配. 0. 目录 使用Autowired 可选的自动装配 使用Qualifier选择 1. 使用Autowired package com. ...

  7. Codeforces 626A Robot Sequence

    A. Robot Sequence time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...

  8. aspose.cell制作excel常见写法

    //设置Excel的基本格式信息 Workbook workbook = new Workbook(); Worksheet worksheet = workbook.Worksheets[]; St ...

  9. 字串数_hdu_1261(大数极致).java

    字串数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  10. 用ConfigurationManager读取和修改配置文件

    为了方便有时我们会把一些简单的配置的信息放入web.config文件里. 放到appSettings添加key   value等信息. ConfigurationManager.AppSettings ...