微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Cocos2D 1.0 中掩饰一个精灵(四)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;)

为了完成需要的效果,我们将使用如下策略:

  1. 我们将首先绘制掩饰精灵,源的颜色(mask)设置为GL_ONE,目的颜色(一个空的缓存)设置为GL_ZERO.所以我们基本上原样显示掩饰图片.
  2. 我么将绘制日历精灵,源颜色(日历精灵)为GL_DST_ALPHA.你可以把它想象为好比是”根据当前缓存中alpha的值(the mask).当它为不透明时,让日历显示出来,如果是透明的,则不显示任何东西!”.目的颜色(the mask)为GL_ZERO,so之前绘制已存在的掩码好像消失了一样.

太好了!你可能认为你只要一个一个的在Cocos2D中绘制如上2个精灵,并且设置合适的混合模式就可以了搞定了 — 但是你错了.

问题是上面的混合算法在运行中如果在你绘制的精灵下面有其他东西 — 比如背景或其他精灵,就会发生问题.这是因为它假设在第1步之后的图片缓存中只有mask图片 — 没有其他图片数据.

所以我们需要一些办法在绘制掩饰纹理的时候有一块”空白石板”(blank slate).这就得靠我们的CCRendererTexture朋友来拯救我们了!

原文地址:https://www.jb51.cc/cocos2dx/340752.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐