cocos2d-x 遮罩效果实现
2013-03-29 17:24
225 查看
遮罩图片:白色
static CCSprite* createMaskedSprite(CCSprite* src,
const char* maskFile,
CCSize maskSize);
CCSprite* StartupGuideLayer::createMaskedSprite(CCSprite* src,
const char* maskFile,
CCSize maskSize)
{
CCSprite * mask =
CCSprite::create(maskFile);
assert(src);
assert(mask);
CCSize srcContent = src->getContentSize();
CCSize maskContent = mask->getContentSize();
CCRenderTexture * rt =
CCRenderTexture::create(srcContent.width, srcContent.height,
kTexture2DPixelFormat_RGBA8888);
float ratiow = maskSize.width / maskContent.width;
float ratioh = maskSize.height / maskContent.height;
mask->setScaleX(ratiow);
mask->setScaleY(ratioh);
mask->setPosition(ccp(srcContent.width /
2, srcContent.height /
2));
src->setPosition(ccp(srcContent.width /
2, srcContent.height /
2));
ccBlendFunc blendFunc2 = {
GL_ONE, GL_ZERO };
mask->setBlendFunc(blendFunc2);
ccBlendFunc blendFunc3 = {
GL_DST_ALPHA, GL_ZERO };
src->setBlendFunc(blendFunc3);
rt->begin();
mask->visit();
src->visit();
rt->end();
CCSprite * retval =
CCSprite::createWithTexture(rt->getSprite()->getTexture());
retval->setFlipY(true);
return retval;
}
调用例子:
CCSprite * spriteGuide =
CCSprite::create(tempBuffer);
spriteGuide = StartupGuideLayer::createMaskedSprite(spriteGuide,
"ui_mask_bai.png",
m_size);
相关文章推荐
- cocos2d-x 基于CCClippingNode实现CCLayer遮罩功能,在滑动时超出剪切区域的实现显示部分的效果,不需要再借助其他sprite来遮挡了
- Cocos2d-x使用ClippingNode实现遮罩效果
- Cocos2d-x使用ClippingNode实现遮罩效果
- Android使用PorterDuffXfermode实现遮罩效果
- [置顶] cocos2d实现CCLabelTTF真正字体描边效果
- Cocos2d-X中使用ProgressTimer实现一些简单的效果
- cocos2d-x 粒子效果内存泄露及Unity一定范围内出怪实现备份。
- 用js+iframe形成页面的一种遮罩效果的具体实现
- Cocos2d-x可以实现的效果总结
- cocos2d 如何实现 翻转效果
- Activity遮罩效果的实现
- 基于JavaScript实现全屏透明遮罩div层锁屏效果
- IOS开发UI篇--使用CAShapeLayer实现复杂的View的遮罩效果
- 原生js实现半透明遮罩层效果具体代码
- jquery实现弹出层遮罩效果
- IOS开发UI篇--使用CAShapeLayer实现复杂的View的遮罩效果
- 【复习笔记】 cocos2d-x 2.x 渲染特效实现 七 辉光效果
- Cocos2d-x CCProgressTimer实现页面加载进度条效果
- 【Cocos2d-x游戏引擎开发笔记(11)】粒子系统----实现下雪效果
- 如何在cocos2d-x实现高效的mask(遮罩)