首页 > 其他 > 详细

不规则遮罩

时间:2015-03-25 11:45:58      阅读:213      评论:0      收藏:0      [点我收藏+]
CCSprite*  GOEUtilies::createMaskedSprite(CCSprite* src, const char* maskFile) 
{ 
    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 = srcContent.width / maskContent.width; 
    float ratioh = srcContent.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; 
} 

 

不规则遮罩

原文:http://www.cnblogs.com/rexzhao/p/4365004.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!