cocos2dx 利用遮罩(蒙版)CCLayerColor制作及抠图

cocos2dx 利用遮罩(蒙版)CCLayerColor制作及抠图,第1张

概述制作一个类似遮罩的效果,然后抠出不该被遮挡的部分   CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); //背景图  CCSprite* sp = CCSprite::create("PIC_BJ_CJ4.png");  sp->setPosition(ccp(640, 400));  addChild(sp)

制作一个类似遮罩的效果,然后抠出不该被遮挡的部分

CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();

//背景图@H_301_6@@H_404_7@ CCSprite* sp = CCSprite::create("PIC_BJ_CJ4.png");@H_404_7@ sp->setposition(ccp(640,400));@H_404_7@ addChild(sp);

//创建剪裁节点@H_301_6@@H_404_7@ CcclipPingNode* pClip = CcclipPingNode::create();

@H_404_7@ //设置是否反向,将决定画出来的圆是透明的还是黑色的@H_301_6@

pClip->setInverted(true);@H_404_7@ addChild(pClip);

//图层添加到剪裁节点上@H_301_6@@H_404_7@ cclayercolor* pLayer = cclayercolor::create(ccc4(0,110));@H_404_7@ pClip->addChild(pLayer);pLayer->setAnchorPoint(ccp(0.5,0.5));

//制作一个圆的数据@H_301_6@@H_404_7@ cccolor4F color = {0,0};//R G B 透明度@H_301_6@@H_404_7@ float radius = 55.0f;//半径@H_301_6@@H_404_7@ const int nCount = 200; //设置顶点数, 设圆有200个顶点@H_301_6@@H_404_7@ const float angel = 2.0f * (float)M_PI/nCount; //两个顶点与中心的夹角(弧度)@H_301_6@@H_404_7@ CCPoint circle[nCount];@H_404_7@ for (int i=0; i<nCount; i++)@H_404_7@ {@H_404_7@ float radian = i * angel;@H_404_7@ circle[i] = ccp(radius * cosf(radian),radius * sinf(radian));@H_404_7@ }

//制作一个四边形的数据@H_301_6@

const int Count = 4;@H_404_7@ static CCPoint pos[Count]; //多变形各点坐标 相对于postion的偏移@H_301_6@@H_404_7@ CCPoint center(visibleSize.wIDth/2,visibleSize.height/2);@H_404_7@ pos[0] = ccp(540,500);@H_404_7@ pos[1] = ccp(center.x + 100,center.y + 100);@H_404_7@ pos[2] = ccp(center.x + 100,center.y - 100);@H_404_7@ pos[3] = ccp(center.x - 100,center.y - 100);

@H_404_7@ //绘制四边形@H_301_6@@H_404_7@ pStencil = CCDrawNode::create();@H_404_7@ //pStencil->drawpolygon(circle,nCount,color,color); //绘制那个圆@H_301_6@@H_404_7@ //pStencil->setposition(visibleSize.wIDth/2,visibleSize.height/2); //数组circle的坐标是相对positon的偏移@H_301_6@

pStencil->drawpolygon(pos,Count,color); //绘制那个四边形@H_301_6@

pClip->setStencil(pStencil); //抠出这个多边形 @H_301_6@

@H_301_6@

以上整个代码在init中就好@H_301_6@

总结

以上是内存溢出为你收集整理的cocos2dx 利用遮罩(蒙版)CCLayerColor制作及抠图全部内容,希望文章能够帮你解决cocos2dx 利用遮罩(蒙版)CCLayerColor制作及抠图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1018804.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存