bool HelloWorld::init()
{
//////////////////////////////
if ( !Layer::init() )
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin(); Point ptMID = Point(visibleSize.wIDth/2,visibleSize.height/2); //////底
Sprite *girl5 = Sprite::create("1.jpg");
girl5->setposition(ptMID);
girl5->setScale(0.6); this->addChild(girl5); /////上层;
Sprite *cuve = Sprite::create("2.png");
cuve->setposition(ptMID);
this->addChild(cuve); cuve->setBlendFunc(BlendFunc{ GL_ONE,GL_SRC_Alpha }); //设置精灵混合模式; //////渲染;
RenderTexture *render2 = RenderTexture::create(visibleSize.wIDth,visibleSize.height);
render2->setposition(ptMID);
this->addChild(render2);
render2->begin();
girl5->visit();
cuve->visit(); render2->end();
render2->savetofile("fferrff1.png",kCCImageFormatPNG); //保存渲染器里渲出的精灵;
log(fileUtils::getInstance()->getWritablePath().c_str()); //存文件的路径; ///////////////////////////////////////
return true;
}
////////////////////////////////////////////////////////////////////////'
精灵颜色混合;
作用范围只是在精灵大小的方形区域;其它区域不受精灵的影响;
只分有颜色和没颜色(透明)两部分,不是用黑白来表示;
Sprite*pSprite3=Sprite::create ("e3.png");
BlendFuncbf; //混合结构体,只有下面两个数据成员;
bf.src=GL_ONE;//源;即精灵有颜色的部分;
bf.dst=GL_ONE;//目标;即精灵没有颜色的部分;
BlendFunc pSprite3= cuve->getBlendFunc();//默认 BlendFunc{GL_ONE,GL_ONE_MINUS_SRC_Alpha }
pSprite3->setBlendFunc(bf); //pSprite3->setBlendFunc (BlendFunc{GL_ONE, GL_ONE });
渲染是先渲染下面的精灵;然后渲染上面的;一个个精灵按顺序来;
只是自己和已经渲染的(可以看作是一张图);不要拿多个精灵来理解;
自己渲染时,自己作为源(自己有颜色的部分),已经渲染了的精灵作为目标(自己没有颜色的部分);
如:
pSprite3->setBlendFunc (BlendFunc{GL_ONE, GL_ZERO });
//源(自己有颜色的部分)全部显示;
//目标(自己没有颜色的部分)底图也不显示;
pSprite3->setBlendFunc (BlendFunc{GL_ZERO,GL_SRC_Alpha }); //遮罩效果
//源(自己有颜色的部分)全部不显示;结果是底图显示;
//目标(自己没有颜色的部分)采用自己的透明度(为0),结果是底图也不显示;
GL_ONE //有颜色的地方全显示;1
GL_ZERO //没颜色的地方全不显示;0
GL_SRC_Alpha //用源的透明;
GL_SRC_ color; //用源的颜色;
GL_ONE_MINUS_ SRC _color; //白色减源的颜色;
GL_ONE_MINUS_ SRC _Alpha; //白色减源的透明;
GL_ DST_Alpha;
GL_ DST_color;
GL_ONE_MINUS_ DST _color;
GL_ONE_MINUS_ DST _Alpha;
总结以上是内存溢出为你收集整理的Cocos2dx的截屏与遮罩全部内容,希望文章能够帮你解决Cocos2dx的截屏与遮罩所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)