用CCRenderTexture和BlendFunc制作游戏教学时使用的黑色覆盖层
2015-04-29 14:15
232 查看
游戏快要完成了,准备做教学。
我们的教学是在整个界面上盖一层灰色图片,然后把提示点击的按钮部分亮出来,也就是在一块黑色图片上,按需求扣空一小部分。如图,把武器部分扣空,那么在其它地方又会扣空其它部分,而且要可以扣空多个不规则图形。
方法:
先计算出要扣空部分的位置和大小,这个很容易,应为它已经在你的界面上了,用->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()); }
相关文章推荐
- 【iOS-Cocos2d游戏开发之十七】灵活使用精灵可视区域(TextureRect)与锚点(anchorPoint),并结合可视区域与锚点制作进度条!
- 【iOS-Cocos2d游戏开发之十七】灵活使用精灵可视区域(TextureRect)与锚点(anchorPoint),并结合可视区域与锚点制作进度条!
- 【Cocos2d游戏开发之十七】灵活使用精灵可视区域(TextureRect)与锚点(anchorPoint)
- 如何使用Createjs来编写HTML5游戏(三)使用EaselJS中的制作Sprite类制作
- 开发者分享使用Unity制作2D游戏的技巧
- <cocos2d-x for wp7>使用cocos2d-x制作基于Tile地图的游戏:加入敌人和战斗(三)
- 【Cocos2d游戏开发之十七】灵活使用精灵可视区域(TextureRect)与锚点(anchorPoint)
- (译)如何使用cocos2d制作基于tile地图的游戏教程:第一部分
- 如何使用cocos2d-x3.0制作一个打地鼠的游戏:第二部分
- 被正确使用的轮子才是好轮子——使用Construct2制作游戏的一点感想
- Tiled使用教程(游戏地图制作)
- XNA Game Studio是一套有着强大功能和简单界面的游戏制作平台,游戏开发商和游戏玩家都可以使用这套工具开发针对Windows XP以及Xbox360的游戏,XNA Game Studio分为两种版本,一种是面向初学者的EXPRESS版本,还有一种是面向专业用户的专业版。用户使用EXPRESS版本开发游戏完全免费,并且可以随意在PC上发行,不过用该工具开发的游戏若是在360上网络发行,就需要交纳99美元的年费。
- 游戏编程入门(2):创建游戏引擎和使用该引擎制作小游戏
- (译)如何使用cocos2d制作一个太空射击游戏
- 使用Box2d和cocos2d-x从头开始制作一个弹弓类游戏系列教材的第二部分
- 7.如何使用cocos2d和box2d来制作一个Breakout游戏:第一部分
- 如何使用Box2D和Cocos2D制作一款像Fruit Ninja一样的游戏-第1部分
- (译)如何使用cocos2d来制作一个打地鼠的游戏:第一部分
- (译)如何使用cocos2d制作基于tile地图的游戏教程:第一部分
- 如何使用Box2D和Cocos2D制作一款像Fruit Ninja一样的游戏-第1部分