cocos2d-X 显示不规则图片方法(遮罩)
游戏中经常会使用一些mask, 来做遮罩,实现不规则图的显示,在cocos2d-x中
函数实现如下:
.h
staticCCSprite*createMaskedSprite(CCSprite*src,constchar*maskFile);
.cpp
CCSprite*GOEUtilies::createMaskedSprite(CCSprite*src,constchar*maskFile){CCSprite*mask=CCSprite::create(maskFile);assert(src);assert(mask);CCSizesrcContent=src->getContentSize();CCSizemaskContent=mask->getContentSize();CCRenderTexture*rt=CCRenderTexture::create(srcContent.width,srcContent.height,kTexture2DPixelFormat_RGBA8888);floatratiow=srcContent.width/maskContent.width;floatratioh=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));ccBlendFuncblendFunc2={GL_ONE,GL_ZERO};mask->setBlendFunc(blendFunc2);ccBlendFuncblendFunc3={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);returnretval;}
使用方法为:
GOEUtilies::createMaskedSprite(sprite,"mask.png");
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。