Quick-Cocos2d-x 实现屏蔽并实践运用(待续)
实现屏蔽的最经常使用的两个方式:CCRenderTexture、CCClippingNode,下面先简单的介绍下这两种方式:
1、CCRenderTexture:经常用到的是对精灵进行屏蔽处理,在处理之前要先设置ccBlendFunc参数:
比如这里创建了一个精灵sprSrc,并设置ccBlendFunc参数为{GL_DST_ALPHA,GL_ONE},这里要理解src和dst的含义:src是源,dst为目标,设置ccBlendFunc的精灵为源,底板则为目标。
接着创建CCRenderTexture底板,指定大小及位置:
接下来进行屏蔽处理:
到此就完成了屏蔽,这是最基本最简单的用法。
2、CCClippingNode: 首先我们需要创建一个裁剪节点CCClippingNode:
然后创建模板,这里使用CCDrawNode来创建一个200X200范围的模板范围:
最后把模板stencil加入到裁剪节点clipOuter当中:
到此CCClippingNode创建的屏蔽已经完成,所有加入到clipOuter中的子节点只会显示模板范围内的内容,超出的部分则会被裁掉,例如:
另外:CCClippingNode创建的对象实例的中心点坐标为(0,0)。
一、子弹穿孔效果 把所有子弹的弹孔集合作为模板并设置setInverted(true)那么弹孔所在的位置则成为一个个空洞:
通过上面的代码则对目标target做好了蒙版,下面点击生成子弹:
效果截图如下: 二、滚动字幕的实现 创建CCClipingNode实例并设置模板,然后把要滚动的字幕文本加入到其子节点,设置文本的滚动动作后即可以实现滚动字幕效果。具体代码如下:
其余内容,后续补充。
来源网址:http://www.52php.cn/article/p-tdpblvaa-no.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c – QGridLayout中的行大小一致
- objective-c – IOS:是否可以将一个故事板视图控制器绑定到
- 在c / c中更改Android上的本机线程优先级
- mandatory argument 'crshome' is missing
- JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
- 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案
- Vue表单验证插件Vue Validator使用方法详解
- Ruby的“begin … end”是否有意想不到的后果,而没有“resc
- (1)cocos2d-x-2.2.4搭建windows开发环境
- react-native – Visual Studio代码格式化保存失败